【androidjava】パーミッションをonStartメソッド内に書く

意図的にパーミッションをoffにしたときの対策として

パーミッションを再度促す処理を作りました。

 

アプリで設定したパーミッションは設定から簡単に変えられるのですが、

offにされてしまうとアプリを使う上で困ってしまう理由上onStart

で再許可をして許可しなければ機能を使うことができなくするように

しました。

 

onstartは、アプリがバックグラウンドに移った後にまたそのアプリに

復帰するときに呼ばれるライフサイクルのことです。

 

 

 

 

これが呼ばれている間はユーザーはアプリのアクティビティが

見えていない状態になります。その中でパーミッション許可を

させようという訳です。

 

</pre>
<pre>@Override
protected void onStart() {
    super.onStart();
    if (Build.VERSION.SDK_INT >= 23) {
        if (ActivityCompat.checkSelfPermission(this,
                android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED
                && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
            userSetting();
        }else {
            requestPermission();
        }
    }else{
        userSetting();
    }
}

private void requestPermission() {
    String[] permissions = { Manifest.permission.CAMERA,
            Manifest.permission.WRITE_EXTERNAL_STORAGE };
    ActivityCompat.requestPermissions(this, permissions, REQUEST_PERMISSION);
}</pre>
<pre>@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    if (requestCode == REQUEST_PERMISSION) {
        // 使用が許可された
        if (grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) {
            // 許可された
            userSetting();
        } else {
            Toast.makeText(this, "許可されませんでした。", Toast.LENGTH_SHORT).show();
            userSetting();
        }
    }
}</pre>
<pre>

 

ここで、offにしたパーミッションをonにすることで直ちにアプリを

正常に使うことができるようになります。

 

 

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG