次のコードを追加する必要があります。デバイスに Android 6.0 以降が搭載されている。
if(ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED){
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(intent, 1);
} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 2);
}
アプリに STORAGE を使用する権限がある場合は、STORAGE を開きます。
アプリに STORAGE の使用権限がない場合は、システム ダイアログが開きます。onRequestPermissionsResult に表示されるダイアログの結果。(アクティビティでオーバーライドする必要があります)。
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
if (requestCode == 2) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(intent, 1);
}
}
}
private メソッドの次の行を抽出する必要があると思います。
private void takePhoto() {
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(intent, 1);
}
詳細については、https ://developer.android.com/training/permissions/requesting.html を参照してください。