android在Android 6.0及更高版本上发送短信作为系统应用程序

时间:2016-11-18 07:10:09

标签: android android-manifest android-permissions smsmanager

所以我有一个 rooted一加一,我有我的apk作为系统应用程序。我已将我的apk保留在/system/priv-app/中,这应该为应用程序提供所有必需的权限,以便作为系统应用程序工作。

但是我收到以下错误:

11-18 12:23:59.928 4470-4511/com.justswipe.service E/AndroidRuntime: FATAL EXCEPTION: Thread-2
Process: com.justswipe.service, PID: 4470
java.lang.SecurityException: Sending SMS message: uid 10111 does not have android.permission.SEND_SMS.
at android.os.Parcel.readException(Parcel.java:1684)
at android.os.Parcel.readException(Parcel.java:1637)
at com.android.internal.telephony.ISms$Stub$Proxy.sendTextForSubscriber(ISms.java:770)
at android.telephony.SmsManager.sendTextMessageInternal(SmsManager.java:318)
at android.telephony.SmsManager.sendTextMessage(SmsManager.java:301)
at com.justswipe.service.MainActivity$2.run(MainActivity.java:127)
at java.lang.Thread.run(Thread.java:761)

以下是我用来发送短信的代码:

SmsManager sm = SmsManager.getDefault();
sm.sendTextMessage("My_Phone_Number", null, message.toString(), sentPendingIntent, null);

以下是我在Manifest中使用的权限:

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

MyApp是一个系统应用程序,在启动时作为服务运行时没有用户界面

现在我面临的问题是,如果我转到Settings->Apps->MyApp->Permissions Granted并从那里开启,如果我打开短信权限,然后如果我重新启动它就会发送短信。

为什么我需要从设置中启用SMS权限,当我已经为它提供了必须拥有的所有特权权限时?

0 个答案:

没有答案