gpt4 book ai didi

android-6.0-marshmallow - android marshmallow - SMS_RECEIVED 权限

转载 作者:行者123 更新时间:2023-12-05 08:20:55 30 4
gpt4 key购买 nike

我最近更新了我的应用程序以支持 android 6 marshmallow。我按照 https://developer.android.com/training/permissions/requesting.html 上的说明进行操作

并为 Manifest.permission.RECEIVE_SMS 添加了 requestPermissions。当我运行以下代码时:

        Log.i(TAG, "sending SMS...");
Intent intent = new Intent("android.provider.Telephony.SMS_RECEIVED");
intent.putExtra("pdus", data);

getContext().sendOrderedBroadcast(intent, null);

我明白了

java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.provider.Telephony.SMS_RECEIVED from pid=1999, uid=10056

即使我授予 SMS_RECEIVED 权限,我也无法在设备上发送短信广播。

知道为什么我在 android 6 上得到这个安全异常。

我的目标是在我的设备链接中生成虚假短信[ can I send "SMS received intent"? .我没有在谷歌上发现任何不再允许的提及。

最佳答案

您需要将权限添加到 list xml 中:

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

AND,您需要在运行时请求权限。在 android 6 之前,权限是在安装时自动授予的。 android 6及以上版本,可以安装应用,不授予权限。您可以在事件类中使用此功能:

private void requestSmsPermission() {
String permission = Manifest.permission.RECEIVE_SMS;
int grant = ContextCompat.checkSelfPermission(this, permission);
if ( grant != PackageManager.PERMISSION_GRANTED) {
String[] permission_list = new String[1];
permission_list[0] = permission;
ActivityCompat.requestPermissions(this, permission_list, 1);
}
}

this - 您的事件。

关于android-6.0-marshmallow - android marshmallow - SMS_RECEIVED 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33347809/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com