【问题标题】:Android: java.lang.SecurityException: Package com.android.phone (uid=1001) does not match provided uid 10246Android:java.lang.SecurityException:包 com.android.phone (uid=1001) 与提供的 uid 10246 不匹配
【发布时间】:2023-01-24 18:10:38
【问题描述】:

设想:如果用户授予短信权限,我们将向特定号码发送短信。

设备:仅限搭载 Android 11 的三星设备。

代码:

SmsManager.getSmsManagerForSubscriptionId(subscriptionId)
.sendTextMessage(destinationAddress, null, getString(R.string.xyz)
.format(token), sendSMSPendingIntent, null)

例外:

java.lang.SecurityException: Package com.android.phone (uid=1001) does not match provided uid 10246

android.os.Parcel.createExceptionOrNull Parcel.java:2385
android.os.Parcel.createException Parcel.java:2369
android.os.Parcel.readException Parcel.java:2352
android.os.Parcel.readException Parcel.java:2294
com.android.internal.telephony.ISms$Stub$Proxy.sendTextForSubscriber ISms.java:2102
android.telephony.SmsManager$1.onSuccess SmsManager.java:618
android.telephony.SmsManager.sendResolverResult SmsManager.java:1627
android.telephony.SmsManager.resolveSubscriptionForOperation SmsManager.java:1588
android.telephony.SmsManager.sendTextMessageInternal SmsManager.java:613
android.telephony.SmsManager.sendTextMessage SmsManager.java:451```

【问题讨论】:

  • 您能否更新问题以包括用户授予的特定 SMS 权限?

标签: android sms android-securityexception


【解决方案1】:

在尝试发送短信之前,您必须检查飞行模式状态和移动网络状态。

如果启用飞行模式或信号强度为零,则跳过发送短信呼叫并显示错误消息。

检查飞行模式:

public static boolean isAirplaneModeOn(Context context) {
       return Settings.System.getInt(context.getContentResolver(),
                Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
}

检查移动网络

@RequiresApi(api = Build.VERSION_CODES.P)
public static boolean isNoSignalStrength(Context context) {
    TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);
    return telephonyManager.getSignalStrength().getLevel() == 0;
}

我从这个链接https://askandroidquestions.com/2021/08/04/samsung-android-11-java-lang-securityexception-package-com-android-phone-uid1001-does-not-match-provided-uid-10571/?unapproved=6705&moderation-hash=ad920e86b8ab19ada9b29f39694490d5#comment-6705 得到了解决方案

【讨论】:

  • 这是三星设备的常见问题吗?您提供的 URL 当前无效。
  • 是的,三星更新了适用于 Android 11 或更高版本的操作系统代码。由于网络强度,其他 OEM 设备不会在发送短信失败时抛出任何异常。我不确定为什么 url 不起作用,但您可以尝试上面的代码来解决问题。
【解决方案2】:

找到了根本原因。

当 SIM 卡处于非活动状态时,设备可能会抛出安全异常。

解决方案:只需更换工作正常的 SIM 卡即可。

希望能帮助到你。

【讨论】:

    猜你喜欢
    • 2018-04-08
    • 2017-12-12
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-19
    • 1970-01-01
    • 2018-08-05
    相关资源
    最近更新 更多