答えて

4

READ_EXTERNAL_STORAGEを要求する必要があります。あなたはそれなしでギャラリーにアクセスできますが、ギャラリーから入手したメディアで何かしたいのであれば、READ権限が必要です。

画像をギャラリー形式を選んされた後にonActivityResultに何が起こるかの簡単なテスト:

許可拒否:com.android.providers.media.MediaProviderを読ん URIコンテンツ://メディア/外部をPID = 8405から/画像/メディア、UID = 10177 はandroid.permission.READ_EXTERNAL_STORAGE、または grantUriPermissionを(必要)

0

カスタム許可のためにあなたは、Android 6.0またはabove.Thisを使用している場合は、実行時のアクセス許可を使用することができますコードはあなたを助けるかもしれません。既にアプリでは必要な権限を持っていない場合

は、アプリが コールrequestPermissionsの1()メソッドは 適切な権限を要求する必要があります。あなたのアプリは必要な権限を渡します。 は、この 権限リクエストを識別するために指定する整数要求コードです。このメソッドは非同期で機能します: をすぐに返し、ユーザーがダイアログボックスに応答した後、システム は、アプリケーションがrequestPermissions()に渡した同じ 要求コードを渡して、結果を含むアプリケーションのコールバックメソッドを呼び出します。

// Here, thisActivity is the current activity 
if (ContextCompat.checkSelfPermission(thisActivity, 
       Manifest.permission.READ_CONTACTS) 
     != PackageManager.PERMISSION_GRANTED) { 

    // Should we show an explanation? 
    if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity, 
      Manifest.permission.READ_CONTACTS)) { 

     // Show an explanation to the user *asynchronously* -- don't block 
     // this thread waiting for the user's response! After the user 
     // sees the explanation, try again to request the permission. 

    } else { 

     // No explanation needed, we can request the permission. 

     ActivityCompat.requestPermissions(thisActivity, 
       new String[]{Manifest.permission.READ_CONTACTS}, 
       MY_PERMISSIONS_REQUEST_READ_CONTACTS); 

     // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an 
     // app-defined int constant. The callback method gets the 
     // result of the request. 
    } 
}  

​​

https://developer.android.com/training/permissions/requesting.html

関連する問題