我正在寻找一个应用程序,该应用程序禁用从 android 设备发送或接收 SMS 消息或两者兼而有之。安装应用程序后,它会检查 Web url 的布尔值 0 或 1,如果为零,则禁用 sms,否则启用。
谁能指导我从哪里开始?这可能吗?
我正在寻找一个应用程序,该应用程序禁用从 android 设备发送或接收 SMS 消息或两者兼而有之。安装应用程序后,它会检查 Web url 的布尔值 0 或 1,如果为零,则禁用 sms,否则启用。
谁能指导我从哪里开始?这可能吗?
恕我直言,您根本无法禁用 SMS 接收/发送,但您可以捕获 SMS 接收到的广播意图。
SMS 接收到的Broadcast Intent 是一个有序的Broadcast,它将按照Receiver 中定义的Priority 的顺序传递给所有Broadcast Receiver。
如果您注册优先级为 0 的广播接收器,您可以捕获 SMS 广播并取消它。
请记住,其他 SMS 应用程序也可以使用优先级 0 注册,相同优先级值的行为未定义。无论如何,短信也会收到,你只隐藏结果通知/铃声。
另一种方法是将 SMS 中心号码设置为一些无效值,但需要有根电话
您可以为传入的 SMS 注册一个 BroadcastReceiver 并用于this.abortBroadcast();
中止其进一步处理:
在你的内心显现:
<receiver android:name=".SMSBroadcastReceiver">
<intent-filter>
<action android:name="android.provider.telephony.SMS_RECEIVED"></action>
</intent-filter>
</receiver>
接收器的实现:
public class SMSBroadcastReceiver extends BroadcastReceiver {
private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction() == SMS_RECEIVED) {
Bundle bundle = intent.getExtras();
...
this.abortBroadcast();
}
}
}
但是 - 无法以这种方式中止发送的 SMS。请注意,如果注册了多个 BroadcastReceiver,则优先级最高的 ( android:priority
) 将首先处理。