権限が適用され、ダイナミックでアプリを作成するには、最初からIDカードの識別app--メイク

作ります

あなたが別のインターフェイスを開いた場合と同じバージョンでなくてもよいです

1.选Emptyアクティビティ

ここに画像を挿入説明

2.基本設定ここに画像を挿入説明

彼が置かれている場所、それは、直接私は、フォルダ作成デスクトップ上で、知っている2.1の変更内部の保存場所最高
最低レベルのAPIである2.2を、ご自身のニーズの変化を見て

完全作成3.

ここに画像を挿入説明
3.1インタフェースのための任意のアイデアがある場合

  File->setting->appearance and behavior->appearance
  这里可以改一下颜色或者字体大小

ダイナミックな権利を取得する4.

4.1権限必要

アンドロイド6.0は、我々が最初にそこに23人のAPIを決定するように、APIレベル23の後に、許可は、それ以外のプログラムが正常に動作しない、動的なアプリケーションを必要な取得、ある
ファイルストレージの特権を理由今、(システムのカメラを呼び出す場合は、この特権は適用されません)、カメラの許可を6.0の後、ほぼすべての携帯電話、我々は許可ダイナミックを取得する必要がありますので、許可の申請をしない場合、それは、携帯電話の内部を開くように設定し、独自の設定権限が必要ソフトウェアの権利を取得し、手動

この下に経路に配置されている:上APP / manifes / AndroidManifest.xmlを、アプリケーション、図のように。
ここに画像を挿入説明

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA"/>

4.2アプリケーションのパーミッション

  1. 宣言変数
   private static final String[] FILE_PERMISSIONS = {Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.CAMERA};
    //这里用数组,是为了方便还有其他权限,照着这个格式往后面加就好了
    private static final int FILE_PERMISSIONS_CODE = 1;
  1. APIの判断は、23を超えていませんいくつかの簡単な問題を解決することができ、いくつかの赤プロンプトは、Alt + Enterをビルド時、もし
//创建这个方法,记得把方法放到   onCreate  方法中
 private void requestPermission() {
        // 当API大于 23 时,才动态申请权限
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            ActivityCompat.requestPermissions(MainActivity.this,FILE_PERMISSIONS,FILE_PERMISSIONS_CODE);
        }
    }

次に、以下のコードを追加する権限を申請します

   @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        switch (requestCode) {
            case FILE_PERMISSIONS_CODE:
                //权限请求失败
                if (grantResults.length == FILE_PERMISSIONS.length) {
                    for (int result : grantResults) {
                        if (result != PackageManager.PERMISSION_GRANTED) {
                            //弹出对话框引导用户去设置
                            showDialog();//方法在下面
                            Toast.makeText(MainActivity.this, "请求权限被拒绝", Toast.LENGTH_LONG).show();
                            break;
                        }
                    }
                }else{
                    Toast.makeText(MainActivity.this, "已授权", Toast.LENGTH_LONG).show();
                }
                break;
        }
    }

後に、このステップは、実際のマシンが稼働している場合、ダイナミックに許可を申請することができるはずです

公開された19元の記事 ウォンの賞賛2 ビュー2096

おすすめ

転載: blog.csdn.net/weixin_43308622/article/details/103338039