端末によってonRequestPermissionsResultが呼ばれないケースがあるのですがなぜなんでしょうか。
どなたかご存知でしょうか。
以下の内容で権限の許可を行った際に「Nexus 5X Android7.1.2」ではonRequestPermissionsResultが呼ばれ「Nexus 5 Android6.0.1」では呼ばれませんでした。
追記(2017/09/21 19:38)------------
正確にはAndroid6では権限選択後(選択時?)にアプリが終了するような動作をして権限選択後にアプリを再起動する羽目になってしまいます。再起動時にはonRequestPermissionsResultが呼ばれます。
Android7では再起動せずonRequestPermissionsResultが呼び出されます。
Android6でも再起動しないようにしたいのですがどなたかご存知でしょうか
compileSdkVersion 26
buildToolsVersion '26.0.1'
dependencies {
compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
compile 'com.google.android.gms:play-services:7.3.0'
}
でビルドしています
public class MainActivity extends Activity implements ActivityCompat.OnRequestPermissionsResultCallback { int requestCode = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getPermission(); } private void getPermission(){ Log.d("getPermission","start"); String[] permissions = { Manifest.permission.READ_PHONE_STATE, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE }; ActivityCompat.requestPermissions(MainActivity.this, permissions, requestCode); } @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { Log.d("onRequestRes",requestCode +" / "+ Arrays.toString(permissions)+" / "+Arrays.toString(grantResults)); } }
ログ(Android6)
09-22 10:56:44.274 29465-29465/permission.test D/getPermission: start 09-22 10:56:44.292 29465-29568/permission.test D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true 09-22 10:56:44.330 29465-29568/permission.test I/Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: QUALCOMM Build: 10/21/15, 369a2ea, I96aee987eb 09-22 10:56:44.332 29465-29568/permission.test I/OpenGLRenderer: Initialized EGL, version 1.4 09-22 10:56:47.327 29465-29465/permission.test D/getPermission: start 09-22 10:56:47.327 29465-29465/permission.test W/Activity: Can reqeust only one set of permissions at a time /** *権限入力後(ログは出ませんでした) **/
ログ(Android7)
09-22 11:07:47.232 25582-25582/permission.test D/getPermission: start 09-22 11:07:47.232 25582-25582/permission.test W/Activity: Can reqeust only one set of permissions at a time /** *権限入力後 **/ 09-22 11:08:03.657 25582-25582/permission.test D/onRequestRes: 1 / [android.permission.READ_PHONE_STATE, android.permission.ACCESS_FINE_LOCATION, android.permission.WRITE_EXTERNAL_STORAGE] / [0, 0, 0]
回答4件
あなたの回答
tips
プレビュー