2016-07-18 6 views
4

6.0Aの電話番号&のストレージタスクのためのアクセスを求めるMainActivityに従っています。 のアクセス許可が2回表示され、クラッシュします。 acquire_permissionの後にMainActivityを再起動する必要がありますか?助けや指導のおかげで ありがとうございます。私にとってActivityCompat.requestPermissionsでアクセス許可を求めているときにAndroidアプリケーションが6.0でクラッシュする

MainActivity.java

onCreate(){ 
seek_permissions() 
//load db data and continue 
//with the app tasks 
} 


public void seek_permissions(){ 
      boolean hasWritePermission = (ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED); 
      if (!hasWritePermission) { 
       ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_PHONE_STATE,Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.MOUNT_FORMAT_FILESYSTEMS,Manifest.permission.RECEIVE_BOOT_COMPLETED,Manifest.permission.MODIFY_PHONE_STATE}, REQUEST_PERM); 
      }   
    } 
    @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 
     super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
     switch (requestCode) { 
      case REQUEST_PERM: 
      { 
       if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
       acquired_perm = 1; 
       } 
       else {Toast.makeText(MainActivity.this, "Please consider granting these permissions", Toast.LENGTH_LONG).show(); } 
      } 
      return; 
     } 
    } 
+0

"許可を求めるメッセージが2回表示され、クラッシュする" - クラッシュに関連するJavaスタックトレースを投稿してください。応答のために – CommonsWare

+0

、ありがとう、すぐにそれを投稿します。 –

+2

ここで同じ問題が発生すると、アプリは4.4で正常に動作し、6.0+でクラッシュします – Talha

答えて

3

これは、この活動のための私のマニフェストにandroid:noHistory="true"を使用することによって引き起こされたのか?

これはAndroid 6.0のバグかもしれませんが、それ以降のバージョンはうまくいくと思います。

noHistoryが設定されている場合、呼び出し元アクティビティのonDestroyが実行され、破壊されます。ActivityCompat.requestPermissionsコールが発生しました。 noHistoryのために履歴に保存されていないため、権限ダイアログが終了すると本質的に終了します。

あなたはActivityから離れて移動するとき onStop()finish()または別の適切な場所に電話をかけて、自分のマニフェストからタグを削除することができますマニフェスト内代わり "noHistory"の回避策として

関連する問題