安卓 6.0 权限。阅读短信

Posted

技术标签:

【中文标题】安卓 6.0 权限。阅读短信【英文标题】:Android 6.0 Permissions. Read SMS 【发布时间】:2016-04-24 21:30:51 【问题描述】:

我想获得在我的应用程序中阅读短信的权限。这是我的代码:

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_STORAGEREAD_CONTACTS),我得到了这个对话框。你知道怎么解决吗?

方法onRequestPermissionsResult 告诉我未授予权限。但它可以工作,没有确认对话框。

【问题讨论】:

【参考方案1】:

您是否也在androidManifest.xml 中添加了read_sms 权限?

【讨论】:

是的,在我的清单文件中,我有一个 好吧,我找到了问题所在。我需要 。我的天啊。对于其他权限,我不需要这个。谢谢你的回答。【参考方案2】:

我需要<uses-permission-sdk-23/> 来确认对话框。

【讨论】:

【参考方案3】:
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);
        
    

这段代码运行良好。 我在牛轧糖上使用了它(api level:25)我希望它甚至对你有用! 我关注了this

【讨论】:

【参考方案4】:

您可以使用此代码:

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) 
    if (requestCode == ACCESS_SMS) 
        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) 
            Toast.makeText(getApplicationContext(), "Permission granted"+checkboxChecked, Toast.LENGTH_SHORT).show();
            System.out.println("Checkedbox= "+checkboxChecked);
         else 
            Toast.makeText(getApplicationContext(), "Permission denied"+checkboxChecked, Toast.LENGTH_SHORT).show();
        
    

【讨论】:

以上是关于安卓 6.0 权限。阅读短信的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android中未经许可阅读接收短信

如何在MIUI 8+中获取读取“服务SMS”的权限(以编程方式)

子弹短信 app 安卓版正式上线

Android基础——适配安卓6.0新权限系统

安卓6.0及以上权限处理

安卓系统6.0无障碍自动安装怎么不能用了