安卓 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_STORAGE
、READ_CONTACTS
),我得到了这个对话框。你知道怎么解决吗?
方法onRequestPermissionsResult
告诉我未授予权限。但它可以工作,没有确认对话框。
【问题讨论】:
【参考方案1】:您是否也在androidManifest.xml
中添加了read_sms
权限?
【讨论】:
是的,在我的清单文件中,我有一个我需要<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 权限。阅读短信的主要内容,如果未能解决你的问题,请参考以下文章