5

アプリで SMS を読み取る権限を取得したい。これは私のコードです:

String permission = Manifest.permission.READ_SMS;
if (ContextCompat.checkSelfPermission(getContext(), permission) != PackageManager.PERMISSION_GRANTED){
    permissionList.add(permission);

    if (!ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), permission)){
        requestPermissions(new String[]{permission}), SMS_PERMISSION);
    }
}

許可要求を確認するダイアログが表示されませんでした。他の権限(WRITE_STORAGE、 などREAD_CONTACTS)については、このダイアログが表示されました。それを修正する方法を知っていますか?

メソッドonRequestPermissionsResultは、許可が与えられていないことを私に教えてくれます。しかし、確認ダイアログなしで機能します。

4

4 に答える 4

2

<uses-permission-sdk-23/>確認ダイアログが必要です。

于 2016-10-26T10:43:10.423 に答える
0
int GET_MY_PERMISSION = 1;
if(ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.READ_SMS)
            != PackageManager.PERMISSION_GRANTED){
        if(ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,
                Manifest.permission.READ_SMS)){
            /* do nothing*/
        }
        else{

            ActivityCompat.requestPermissions(MainActivity.this,
                    new String[]{Manifest.permission.READ_SMS},GET_MY_PERMISSION);
        }
    }

このコードは正常に動作します。Nougat(api level:25)で使ってみました。私はこれに従った

于 2016-11-01T07:40:55.060 に答える