私は単純な機能をしようとしています。ユーザーがカメラの許可を受けた後、新しい活動を開く必要がありますが、どうすればいいですか?アクティビティを受け入れると、アクティビティを開く方法は?
これはコードです。私は許可を確認し、それを要求する。もし私が新しい活動を開くなら、私の他に。
@RequiresApi(api = Build.VERSION_CODES.M)
@OnClick(R.id.scanButton)
void scanZxing(View view) {
if(getActivity().checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED){
Toast.makeText(context, "We need permissions to acces your CAMERA!", Toast.LENGTH_SHORT).show();
((MainActivity) context).checkCameraPermission();
} else if (view.getId() == R.id.scanButton) {
Intent intent = new Intent(getActivity(), ScanBarcodeActvity.class);
startActivityForResult(intent, 0);
}
}
@TargetApi(23)
public void checkCameraPermission(){
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.M){
return;
}
if (this.checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[] {Manifest.permission.CAMERA}, REQUEST_CODE_CAMERA);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[]
grantResults) {
switch (requestCode) {
case REQUEST_CODE_CAMERA:
if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
Toast.makeText(this, "Thanks for your permission", LENGTH_SHORT).show();
} else {
Toast.makeText(this, "We need your permission to open camera",
LENGTH_SHORT).show();
}
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
break;
}
}
'checkCameraPermission()'に加えて、場所を次の方法上記
コールを次でそれを行うことができます。あなたはそこで何をしていますか?私たちは見ることができません。 – greenapps
'checkCameraPermission()'メソッドにコードの下にインテントを入れました。 –
このコードは、すでに許可を得ている場合にのみ呼び出されます。あなたはあなたがまだ許可を得ていないという提案です。 – greenapps