Jon*_*nny 1 android-6.0-marshmallow
我最近更新了我的应用程序,以支持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);
Run Code Online (Sandbox Code Playgroud)
我明白了
java.lang.SecurityException:Permission Denial:不允许从pid = 1999发送广播android.provider.Telephony.SMS_RECEIVED,uid = 10056
即使我授予SMS_RECEIVED权限,我也无法在设备上发送短信广播.
任何想法为什么我在Android 6上获得此安全异常.
我的目标是在我的设备链接中生成假短信[ 我可以发送"短信接收意图"吗? .我没有在谷歌上发现任何提及它不再允许.
drz*_*ala 10
您需要将权限添加到清单xml中:
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
Run Code Online (Sandbox Code Playgroud)
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);
}
}
Run Code Online (Sandbox Code Playgroud)
这 - 你的活动.
| 归档时间: |
|
| 查看次数: |
20569 次 |
| 最近记录: |