2019 May 25.
"AndroidManifest.xml"
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="xxx.xxx.sampletakephotogetimagefile">
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
"AndroidManifest.xml"
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="xxx.xxx.sampletakephotogetimagefile">
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
- if(Build.VERSION.SDK_INT >= 23){
- checkPermission();
- }
- PROCESS_AFTER_GETTING_PERMISSIONS
- // Permissionの確認
- // reuse of https://akira-watson.com/android/mediastore.html
- @TargetApi(Build.VERSION_CODES.M)
- public void checkPermission() {
- if (checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED){
- requestCameraPermission();
- }
- if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
- requestExStoragePermission();
- }
- }
- // CameraPermission許可を求める
- @TargetApi(Build.VERSION_CODES.M)
- private void requestCameraPermission() {
- if (shouldShowRequestPermissionRationale( Manifest.permission.CAMERA)) {
- requestPermissions(new String[]{Manifest.permission.CAMERA}, REQUEST_PERMISSION_CAMERA);
- } else {
- Toast toast = Toast.makeText(this, "許可されないとアプリが実行できません", Toast.LENGTH_SHORT);
- toast.show();
- requestPermissions(new String[]{Manifest.permission.CAMERA }, REQUEST_PERMISSION_CAMERA);
- }
- }
- // ExternalStoragePermission許可を求める
- @TargetApi(Build.VERSION_CODES.M)
- private void requestExStoragePermission() {
- if (shouldShowRequestPermissionRationale( Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
- requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_PERMISSION__EX_STORAGE);
- } else {
- Toast toast = Toast.makeText(this, "許可されないとアプリが実行できません", Toast.LENGTH_SHORT);
- toast.show();
- requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE }, REQUEST_PERMISSION__EX_STORAGE);
- }
- }
- // requestPermission結果に対する処理
- @Override
- public void onRequestPermissionsResult( int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
- if (requestCode == REQUEST_PERMISSION_CAMERA) {
- if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
- // 拒否された時の対応
- Toast toast = Toast.makeText(this, "これ以上なにもできません", Toast.LENGTH_SHORT);
- toast.show();
- }
- } else if (requestCode == REQUEST_PERMISSION__EX_STORAGE) {
- if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
- // 拒否された時の対応
- Toast toast = Toast.makeText(this, "これ以上なにもできません", Toast.LENGTH_SHORT);
- toast.show();
- }
- } else {
- Toast toast = Toast.makeText(this, "Bad requestCode", Toast.LENGTH_SHORT);
- toast.show();
- }
- }
0 件のコメント:
コメントを投稿