【问题标题】:Intercepting SMS Intents (non-default application)拦截 SMS Intents(非默认应用程序)
【发布时间】:2014-10-11 16:43:19
【问题描述】:

我正在考虑为 Android 编写一个小应用程序,它可以截获收到的文本并将它们推送到 Windows 计算机,您可以在其中对其做出响应。但是,我知道如果没有默认的 SMS 应用程序,您将无法在 Android 上发送短信,而且我不想制作一个完整的短信客户端.. 只是截取文本并在 Windows 上显示它的东西,但使用默认的 SMS用于发送和接收的应用程序。这可能吗?

【问题讨论】:

  • “但是,我知道你不能在 Android 上发送短信,除非你是默认的短信应用”——任何带有SEND_SMS 的应用都可以通过SmsManager 发送短信。
  • 我认为在没有默认应用的情况下发送短信会导致它无法在默认应用中显示?
  • 大部分安卓版本不会将其他应用通过SmsManager发送的短信通知任何短信应用。我似乎记得读过 SmsManager 现在写入 Android 4.4 上的标准发件箱,但我可能记错了。

标签: android sms android-4.4-kitkat telephony smsmanager


【解决方案1】:

因此,要首先接收 SMS,您必须设置一个具有最高优先级的 IntentFilter。喜欢:

IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
registerReceiver(smsReceiver , filter);

其中 smsReceiver 是一个扩展 BroadcastReceiver 的类。在 onReceive 方法中,您可以调用 abortBroadcast();这将停止“android.provider.Telephony.SMS_RECEIVED”事件的广播。更多信息http://developer.android.com/reference/android/content/BroadcastReceiver.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 2013-11-02
    • 1970-01-01
    • 2022-09-23
    • 2016-06-16
    • 1970-01-01
    • 2015-08-08
    相关资源
    最近更新 更多