2016-08-09 14 views
3

私はダウンロードしたファイルのファイルパスを取得しようとしていますが、動作する受信機を提供しましたが、どのようにファイル名/パスを取得できますか?ダウンロード受信者のローカルファイル名へのアクセス方法を教えてください。

インサイドonReceive

String action = intent.getAction(); 
if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) { 

    DownloadManager.Query q = new DownloadManager.Query(); 
    Cursor c = this.query(q); // how to get access to this since there is no instance of DownloadManager 

    try { 
     String filePath = c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME)); 
     Log.i("DOWNLOAD LISTENER", filePath); 

    } catch(Exception e) { 

    } finally { 
     c.close(); 
    } 

} 

あなたはContextgetSystemService()メソッドを介してDownloadManagerインスタンスのネタを得ることができる方法クエリ(...)

答えて

2

を解決できません。

このような何か作業をする必要があります:

@Override 
public void onReceive(Context context, Intent intent) { 
    String action = intent.getAction(); 
    if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) { 

     // get the DownloadManager instance 
     DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); 

     DownloadManager.Query q = new DownloadManager.Query(); 
     Cursor c = manager.query(q); 

     if(c.moveToFirst()) { 
      do { 
       String name = c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME)); 
       Log.i("DOWNLOAD LISTENER", "file name: " + name); 
      } while (c.moveToNext()); 
     } else { 
      Log.i("DOWNLOAD LISTENER", "empty cursor :("); 
     } 

     c.close(); 
    } 
} 
関連する問題