在我的应用程序中接收短信

保罗·亚历山大

我正在创建一个接收SMS短信的应用程序,我创建了一个扩展BroadcastReceiver的类,以在应用程序内的烤面包中接收和显示SMS消息。我还添加了权限以及清单和接收者的声明。问题是它似乎仍然不显示该消息。它只会作为通知出现在顶部栏上。希望有人能够看到我要去哪里错了。为了显示该消息,我必须在mainactivity中添加一些代码吗?还是应该直接从接收器分类显示在我的所有活动中?下面的代码:

更新
我最终删除了我的接收器并重新创建了所有内容,现在看来
SmsReceiver.java可以正常工作

 public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    Bundle extras = intent.getExtras();


    if (extras ==null)
        return;
    //toast
    Toast.makeText(context, "Received", Toast.LENGTH_LONG).show();

    Object[] pdus = (Object[]) extras.get("pdus");

    for (int i = 0; i < pdus.length; i++) {
        SmsMessage SMessage = SmsMessage.createFromPdu((byte[]) pdus[i]);
        String sender = SMessage.getOriginatingAddress();
        String body = SMessage.getMessageBody().toString();

        Intent in = new Intent("SmsMessage.intent.MAIN").putExtra("get_msg", sender+":"+body);

        context.sendBroadcast(in);
        this.abortBroadcast();

    }
}
}
塔尔·卡内尔(Tal Kanel)

问题是它似乎仍然不显示该消息。它只会作为通知出现在顶部栏上

您知道什么是有序广播吗?

如果您不知道-这是广播,该广播由注册此广播的所有接收者同步接收(一个接一个)。您可以在清单接收器减速中设置一个优先级,并且每个接收器都可以使用aboartBroadcast()方法控制广播是否将在优先级链中传递给其他已注册的接收器

这是什么,并接收短信?-SMS接收时,系统发送有序广播。如果接收者的优先级低于“默认SMS应用”的优先级-那么通常发生的情况是,首先获得广播的应用将取消广播,而您将永远不会收到它。

要在默认SMS应用程序之前获得广播,您必须声明接收者具有高优先级(提供优先级= 1000应该可以解决问题)。

不提供优先级-它会自动设置为零。

您可以看一下此示例-我如何截获带有特定文本的短信

还请确保您在清单中声明了对RECEIVE_SMS的许可

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

android:广播接收器在我的应用程序中首先获取短信的优先级值

来自分类Dev

如何将我的应用程序设置为默认接收短信

来自分类Dev

如何将我的应用程序设置为默认接收短信

来自分类Dev

我的应用程序发送的短信已显示在默认的android应用程序中

来自分类Dev

我无法从Parse接收应用程序中的推送通知

来自分类Dev

我无法从Parse接收应用程序中的推送通知

来自分类Dev

在我的应用程序中接收 Android 热关机的通知

来自分类Dev

Android-如何以编程方式使我的应用程序默认为短信应用程序

来自分类Dev

从流星中的浏览器启动短信应用程序

来自分类Dev

在停止的应用程序中接收广播

来自分类Dev

编写一个不允许其他应用程序接收短信的SmsReceiver

来自分类Dev

使用 Broadcast Receiver Android Studio 接收短信时应用程序崩溃

来自分类Dev

我只想在应用程序打开时在android中读取传入的短信正文,而不是在应用程序关闭时在其中读取

来自分类Dev

我希望我的应用程序收到一条短信来启动 MainAcitivity。即使应用程序关闭

来自分类Dev

如何在我的laravel应用程序中通过发布接收数据

来自分类Dev

在短信服务收到短信后启动应用程序

来自分类Dev

发送短信并确认使用本机短信应用程序发送

来自分类Dev

应用程序发送太多短信

来自分类Dev

发送短信之前启动应用程序

来自分类Dev

当我尝试通过我的应用程序发送短信时,消息屏幕会自动取消

来自分类Dev

在我的Rails应用程序中使用twilio发送短信的问题

来自分类Dev

如何在我的Android应用程序中使用Twilio发送短信?

来自分类Dev

如何从我的本机应用程序将短信发送到电报

来自分类Dev

访问广播接收器中的应用程序类

来自分类Dev

在R Shiny应用程序中接收推送数据

来自分类Dev

整个应用程序中的广播接收器

来自分类Dev

从AngularJS中的外部应用程序接收POST

来自分类Dev

从本地应用程序接收 express 中的 webhook

来自分类Dev

为什么我的JSON.stringify(value,replacer)中的replacer函数在Angular应用程序中不接收键?

Related 相关文章

  1. 1

    android:广播接收器在我的应用程序中首先获取短信的优先级值

  2. 2

    如何将我的应用程序设置为默认接收短信

  3. 3

    如何将我的应用程序设置为默认接收短信

  4. 4

    我的应用程序发送的短信已显示在默认的android应用程序中

  5. 5

    我无法从Parse接收应用程序中的推送通知

  6. 6

    我无法从Parse接收应用程序中的推送通知

  7. 7

    在我的应用程序中接收 Android 热关机的通知

  8. 8

    Android-如何以编程方式使我的应用程序默认为短信应用程序

  9. 9

    从流星中的浏览器启动短信应用程序

  10. 10

    在停止的应用程序中接收广播

  11. 11

    编写一个不允许其他应用程序接收短信的SmsReceiver

  12. 12

    使用 Broadcast Receiver Android Studio 接收短信时应用程序崩溃

  13. 13

    我只想在应用程序打开时在android中读取传入的短信正文,而不是在应用程序关闭时在其中读取

  14. 14

    我希望我的应用程序收到一条短信来启动 MainAcitivity。即使应用程序关闭

  15. 15

    如何在我的laravel应用程序中通过发布接收数据

  16. 16

    在短信服务收到短信后启动应用程序

  17. 17

    发送短信并确认使用本机短信应用程序发送

  18. 18

    应用程序发送太多短信

  19. 19

    发送短信之前启动应用程序

  20. 20

    当我尝试通过我的应用程序发送短信时,消息屏幕会自动取消

  21. 21

    在我的Rails应用程序中使用twilio发送短信的问题

  22. 22

    如何在我的Android应用程序中使用Twilio发送短信?

  23. 23

    如何从我的本机应用程序将短信发送到电报

  24. 24

    访问广播接收器中的应用程序类

  25. 25

    在R Shiny应用程序中接收推送数据

  26. 26

    整个应用程序中的广播接收器

  27. 27

    从AngularJS中的外部应用程序接收POST

  28. 28

    从本地应用程序接收 express 中的 webhook

  29. 29

    为什么我的JSON.stringify(value,replacer)中的replacer函数在Angular应用程序中不接收键?

热门标签

归档