-1
許可を与えた後に空白の画面が表示されます。許可を与えた後の空白の画面
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
int PERMISSION_ALL = 1;
String[] PERMISSIONS = {Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.CAMERA};
if(!hasPermissions(this, PERMISSIONS)){
Log.d("permission","permission");
ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
}
}
public static boolean hasPermissions(Context context, String... permissions) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
for (String permission : permissions) {
if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
}
return true;
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions,
int[] grantResults) {
Log.d("requestCode",String.valueOf(requestCode));
switch (requestCode) {
case 1: {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) {
//Do your work.
// finish();
//startActivity(getIntent());
Intent intent = new Intent(MainActivity.this, MainActivity.class);
startActivityForResult(intent, 0);
} else {
Toast.makeText(this, "Until you grant the permission, we cannot proceed further", Toast.LENGTH_SHORT).show();
}
return;
}
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
カメラと場所の許可を求めるダイアログが表示されます。許可した後、空の画面が表示され、電話が切れます。
「デバッガはアクティブではありません」と表示されています。許可のダイアログが表示されていますが、パーミッションタグが取得されていないか、OnRequestPermissionsResult()が呼び出されていません。
誰か助けてもらえますか?
あなたのLogCatは何を言っていますか? 'hasPermissions()'をチェックした後に 'permission 'タグを見ることができると仮定しますが、' requestCode'は期待通りに1ですか? ActivityMAin.javaでこれをチェックしますか?私はそれが_setContentView(R.layout.activity_main)_のために仮定します。もしそうなら、なぜMainActivityと一緒に 'startActivityForResult'をしたいのですか? – thorin86
「デバッガはもうアクティブではありません」となっています。許可のダイアログが表示されていますが、パーミッションタグが取得されていないか、OnRequestPermissionsResult()が呼び出されていません。 – asifa