gpt4 book ai didi

android - 我的传入 SMS 处理接收器应该从系统中获得什么许可?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:47:09 24 4
gpt4 key购买 nike

我在我的 Android 应用程序中静态注册了一个 BroadcastReceiver,它处理传入的 SMS 消息,如下所示:

        <receiver
android:name=".receivers.SmsReceiver"
android:exported="true" >
<intent-filter android:priority="100" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>

Lint 用警告标记这一点,因为 Receiver 是在不需要调用者的任何权限的情况下导出的。如果我将 exported 属性设置为 false,系统将无法在收到 SMS 消息时调用我的 Receiver。

那么,在注册我的 Receiver 以处理传入的 SMS 消息时,我应该要求系统获得哪些权限?

编辑:

我不是在请求使我的应用程序能够接收 SMS 消息的“使用权限”标签。我正在为我的 Receiver 请求适当的“android:permission”值,因此只有系统可以发送这样的广播消息,而另一个应用程序不能为我的应用程序欺骗这样的事件。

例如:

        <receiver
android:name=".receivers.SmsReceiver"
android:exported="true"
android:permission="com.android.permission.SOME_PERMISSION_ONLY_THE_SYSTEM_HAS">
<intent-filter android:priority="100" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>

最佳答案

使用 android:priority="2147483647"代替 android:priority="100"因为假设您使用的任何应用程序的优先级高于您设置的优先级,那么您的广播永远不会通知它。还要在您的 mainfest uses-permission android:name="android.permission.RECEIVE_SMS"

中检查此权限

关于android - 我的传入 SMS 处理接收器应该从系统中获得什么许可?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12370763/

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