1

通知バーから取得したuriからファイルパスを取得できますが、Android Snackbarから受け取ったuriからファイルパスを取得できます。Androidのuriからファイルパスを取得できませんM

現在の機能がパスを取得するために使用されました。 注:これは、以前のマシュマロAndroidバージョンでは正常に動作します。 プライベート文字列extractContentUri URI(URI)アンドロイドMにおいて{

Cursor cursor = null; 

    try { 

     cursor = getContentResolver().query(uri, null, null, null, null); 
     Log.d("CHECK", "COUNT"+cursor.getCount()); 

     if (cursor != null && cursor.moveToFirst()) { 
      Log.d("CHECK", "CURSOR !NULL"); 
      launchedFile = cursor.getString(cursor.getColumnIndexOrThrow("_data")); 
      Log.d("CHECK", "=="+launchedFile); 
      return launchedFile; 
     } 
    } catch (IllegalArgumentException e) { 

    } finally { 
     Log.d("CHECK", "{finally} =="+launchedFile); 
     if (cursor != null) { 
      cursor.close(); 
      cursor = null; 
     } 

    } 
    return null; 
} 

通知バーとスナックバーからのアクセス中に得られたURIが異なっています。内容::スナックバーから//ダウンロード/ all_downloads/1449 URI:コンテンツ:通知バーから URI。//ダウンロード/ my_downloads/1449

カーソル= getContentResolver()クエリ(URI、NULL、NULL、NULL、NULL ); ここで、cursor.getCount()は、スナックバーの場合は常に0です。

+0

多分いくつかのコード? :) – Alqueraf

+0

@ Alqueraf:コードスニペットが –

答えて

0

Android 6以上のバージョンの実行時アクセス許可を追加する必要があります。実行時にはthisの権限を確認してください。

+0

を追加した場合、通知バーからも正しく機能しないはずです。 –

+0

これはこの場合です –

+1

通知バーから処理できます。 また アンドロイドMでは、通知バーとスナックバーからアクセスして取得したURIが異なります。 uri from通知バー:コンテンツ:// downloads/all_downloads/1449 uri from snackbar:コンテンツ:// downloads/my_downloads/1449 cursor = getContentResolver()。query(uri、null、null、null、null、null);ここで、cursor.getCount()は、snackbarの場合は常に0です。 –

関連する問題