所以我有一个 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权限,当我已经为它提供了必须拥有的所有特权权限时?