if(ContextCompat.checkSelfPermission(this、 Manifest.permission.WRITE_EXTERNAL_STORAGE) != PERMISSION_GRANTED){// if(ActivityCompat.shouldShowRequestPermissionRationale(this、 Manifest.permission.WRITE_EXTERNAL_STORAGE) ダイアログ)ボックス{ //あなたはここにアクセス許可が付与されているかどうかを判断しますこのような項目は、許可を申請する必要がある理由をユーザーに説明し、ダイアログボックスの確認キーで再度許可を申請します。ユーザーが「もう質問しない」を選択するとfalseを返します } else { //文字列配列内で許可を適用しますこれは、適用する1つ以上の権限です。1は、権限要求結果の戻りパラメーターです。アプリケーション結果は、onRequestPermissionsResult ActivityCompat.requestPermissions(this、 new String [] {Manifest.permission.WRITE_EXTERNAL_STORAGE、 Manifest.permission.READ_EXTERNAL_STORAGE}、 1); }} rewrite onRequestPermissionsResult { if(requestCode == 1){// requestCode値が1の 場合(int i = 0; i <permissions.length; i ++){ if(grantResults [i] == PERMISSION_GRANTED){ Toast.makeText( this、 "" + "permissions" + permissions [i] + "application successful"、Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this、 "" + "permissions" + permissions [i] + "アプリケーションが失敗しました "、Toast.LENGTH_SHORT).show(); } } } }
宿主における活性 @Override 公共 ボイド onRequestPermissionsResult(int型 requestCode、@NonNullのString []権限、@NonNull INT [] grantResults) { スーパー.onRequestPermissionsResult(requestCode、アクセス許可、grantResults); // フラグメントの活性下で取得 一覧<断片> =フラグメント。getSupportFragmentManager()getFragments(); IF(断片== NULL ) { リターン; } // onRequestPermissionsResultフラグメント方法およびコール検索 のための(断片フラグメント:フラグメント) { IF(fragment!= null ) { // FragmentのonRequestPermissionsResultメソッドはここで呼び出されます fragment.onRequestPermissionsResult(requestCode、permissions、grantResults); } } } 2. フラグメントのみが次の方法でアクセス許可をリクエストします fragment.requestPermissions(mPermissionList、REQUEST_CODE_CAMERA ) ActivityCompat / ContextCompat ActivityCompat.requestPermissions((AppCompatActivity)コンテキストの代わりに、新しい文字列[] {Manifest.permission.CAMERA}、PERMISSION_REQUEST_CODE)