android应用程序在接受API 23中的请求权限后崩溃
此代码在API 24中运行良好,但在用户授予权限后,应用程序在API 23中崩溃android应用程序在接受API 23中的请求权限后崩溃,android,Android,此代码在API 24中运行良好,但在用户授予权限后,应用程序在API 23中崩溃 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); isPermissionGranted(); } @Override public void onReques
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
isPermissionGranted();
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Log.v("", "Permission: " + permissions[0] + "was " + grantResults[0]);
permissionGranted();
}
}
public void isPermissionGranted() {
if (Build.VERSION.SDK_INT > 22) {
if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
Log.v("","Permission is granted");
permissionGranted();
} else {
Log.v("","Permission is revoked");
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
}
}
else { //permission is automatically granted on sdk<23 upon installation
Log.v("","Permission is granted");
permissionGranted();
}
}
//called after permission given by user
public void permissionGranted(){
SystemChanges systemChanges = new SystemChanges();
systemChanges.setStatusBarColor(this);
mainFragment();
}
//inflate the main fragment
public void mainFragment(){
MainFragment mainFragment = new MainFragment();
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.fragmentMain, mainFragment, "mainFragment");
fragmentTransaction.commit();
}
选中此复选框您将在初始化活动之前开始检查权限。至少在onResume()中进行调用,尽管您应该在需要时而不是在开始时调用它activity@X3Btel它在onResme()发布您的“mainFragment();”时给出了相同的错误。。code@Raghavendra它是有效的,事实上早些时候我把代码放在了简历中,谢谢:)检查这个你开始在你的活动初始化之前检查权限。至少在onResume()中进行调用,尽管您应该在需要时而不是在开始时调用它activity@X3Btel它在onResme()发布您的“mainFragment();”时给出了相同的错误。。code@Raghavendra它是有效的,实际上早些时候我把代码放在了简历中,谢谢:)
java.lang.RuntimeException: Failure delivering result ResultInfo{who=@android:requestPermissions:, request=1, result=-1, data=Intent { act=android.content.pm.action.REQUEST_PERMISSIONS (has extras) }} to activity {com.example.anshul.player/com.example.anshul.player.MainActivity}: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState