问题标签 [android-messaging]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
616 浏览

android - 结果接收器与信使

我正在根据本演示文稿的第一种方法实现 REST 客户端 - http://www.google.com/events/io/2010/sessions/developing-RESTful-android-apps.html

目前我正在使用ResultReceiver服务和服务助手之间的“绑定回调”,

有什么理由我应该更喜欢MessengerResultReceiver相反吗?

0 投票
2 回答
6052 浏览

android - sendToTarget 和 sendMessage 之间的区别

在线程、视图或活动之间发送消息时,有两种看似相同的方法。

第一个,对我来说最直观的,是obtaina Message,然后使用Handler'ssendMessage方法:

或者,您可以obtain提供消息Handler,然后使用Message'sendToTarget方法:

为什么存在这两种实现同一目标的方法?他们的行为是否不同?

0 投票
0 回答
80 浏览

android - 多条消息发送在android中无法正常工作

我有一个 android 应用程序,它发送多条消息并调用点击事件。问题是

我有两个点击事件。在第二次点击事件中,代码运行完美,但在第一次点击事件中,相同的代码不起作用(即它不发送任何消息)。这可能看起来很愚蠢,但我无法找出错误。请告诉我如何解决这个问题。

如果需要任何其他信息,请通知我。

我的代码是:

单击第二个按钮时出现错误日志

当我使用此代码处理上述错误时(您是否错过了对 unregisterReceiver() 的调用?)使用此代码:

错误日志 更改代码后,将 multipleSMS 函数替换为新代码的 sendSMS 函数。

0 投票
2 回答
217 浏览

android - 睡眠时服务-活动通信数据处理

项目声明:

我有一个简单的计数器应用程序,其中有 6 件我正在计算的东西。在我的可穿戴设备上,我有一个单选按钮组,可以选择我想要计算的那些东西。然后它会显示手表上项目的当前计数,然后我可以从手表上加或减 1。手表只是一个界面和交互设备。它不做任何处理。所有信息处理和信息存储都在移动设备上完成。所以手表只是发送消息和显示信息。

这个怎么运作:

磨损通过 Wearable.MessageApi.sendMessage() 向手机发送消息,手机以 Wearable.DataApi.putDataItem() 响应。除了引用的项目之外,手表还会发送多种形式的信息,例如 add/subtract/countRequest。手机仅响应请求的项目计数,并且手表仅在显示与显示的值不同时才需要更改显示。

这是一个一般的信使理解问题。我有

监听器工作。现在我想对监听器做一些有用的事情,因为它实际上正在发送我需要的数据。但是由于我的经验有限,我无法在 Service 和 Activity 之间进行通信。我已经阅读了消息传递和广播接收器。并且正在寻找有关如何实施以获得我的结果或更好理解的想法。

根据我从尝试编码中收集到的信息,服务无法直接与我的界面交互,因此我需要以某种方式与我的活动进行通信。我读过的两种方式是消息传递(处理程序)和广播接收器。

这些方法中的每一种都可以发挥作用,但是有它们的缺点,这是我正在寻找更好的理解或帮助的地方。

对于处理程序:即使我可以创建一个静态处理程序类并在处理程序类中运行代码,因为它是静态的,我不能调用非静态对象,这意味着如果我尝试这样做它会失败。

服务:

活动:

有没有一种方法可以实现上述处理程序,因为当我处理消息时,如果我只是简单地敬酒,它就可以工作,所以我可以接收消息。我只是不能从静态调用非静态对象。所以我假设如果我只是将 doThis() 的代码扔到处理程序中,我也无法更新接口对象,因为我只是将它用作两者之间的过渡。当我使用 LiveListeners 并且 onMessageReceived() 在我的 Activity 中,而不是单独的服务时,我只是直接调用 doThis() 并且效果很好。对于 BroadcastReceiver:有很多代码要显示,所以我将只解释我的问题,您也许可以从中回答。显然你必须在 onResume()/onPause() 上注册/取消注册。这将阻止我在手机进入睡眠状态时处理信息。

在我做“LiveListeners”之前它工作得很好,只要活动在前台并且手机没有睡觉。让它在睡觉时工作的唯一方法是让服务在后台工作。

所以我的问题是,处理这种情况的最佳方法是什么,以便我可以在手机处于睡眠状态时处理可穿戴设备发送到手机的信息。还是有另一种方法可以发送我没有找到的数据?

0 投票
1 回答
1187 浏览

android - 是否可以在其他应用程序中充气 RemoteViews?

我正在开发两个 android 应用程序,一个是 baseApp,另一个是 pluginApp。目的是在安装相应插件时扩展 baseApp 的功能。pluginApp 将包含 XML 布局文件,其中包含我需要在 baseApp 中显示的“new_layouts”。有没有办法通过进程间通信或类似的方法将 new_layout 从 pluginApp 传递给 baseApp?

我尝试了以下方法,但没有成功,我将 pluginApp 中的布局文件包装为“RemoteViews”对象并将其传递给 baseApp,但是当我将它膨胀到 baseApp 中时,我收到一条错误消息

注意:“new_layout”在其他元素中包含一个 EditText,EditText 是第一个子元素。

我以前从未使用过 RemoteViews,也不了解它们的用途。

请指导我 1. 是否可以使用从一个应用程序到另一个应用程序的视图?2. RemoteViews 可以用于此目的吗?如果是,那怎么办?3. 为什么我会收到错误,这表明什么?

0 投票
2 回答
992 浏览

android - 即使服务多次启动,onStartCommand() 也只调用一次

以下服务是通过其他应用程序的按钮单击触发的(通过触发待处理的 Intent)。onStartCommand() 使用 send() 方法创建消息和调度。理想情况下,我希望每次单击按钮时都会调用 onStartCommand,因为挂起的意图用于在 buttonClick 上触发服务。

但是 onstartCommand() 只调用一次,第一次单击按钮。随后的按钮单击不会触发 onStartCommand()。

有趣的是,如果我评论这一行 replyTo.send(msg); 每次单击其他应用程序的按钮时都会调用 onStartCommand 。

因此,使用 android IPC Messenger 从服务内发送消息可能会导致问题。我确认消息成功到达目标应用程序。我是否缺少有关 Messages 的一些详细信息,例如阻止发送呼叫?

我从 onStartCommand() 返回“START_STICKY”,这也可能是原因。

欢迎任何有关正在发生的事情的见解。

//MyService.java

额外细节: Button 上的 pendingIntent(来自其他应用程序)是使用 setOnclickPendingIntent()(RemoteViews 类)设置的。

0 投票
0 回答
626 浏览

java - 通过 Handler.sendMessage() 发送的消息在 handleMessage() 1 中未收到数百/数千次

操作系统版本:安卓5.1

我正在使用 android.os.Handler 在各种对象之间传递消息,它工作了几千次(有时是几百次),然后丢失了一条消息。发送成功,sendMessage() 返回 true,但从不调用 handleMessage()。应用程序继续工作,即使错过了消息,消息也会继续流动。

没有异常或崩溃。

  • 难道我做错了什么?任何的意见都将会有帮助
  • 它是 Android 5.1 中的已知错误吗?(我试过搜索但找不到)

我有一个应用程序,其中有 5 个单例组件使用 android 处理程序将消息发送到另一个类“xyz”。xyz 扩展了 android.os.Handler 并覆盖了 handleMessage() 函数。xyz 实例化所有 5 个单例组件,并在 xyz 构造函数中传递它们“this”(它自己的引用)。然后组件使用该引用调用 sendMessage()。

主要活动:

控制器:

BMS_组件:

USB管理器:

紫外线分量:

0 投票
0 回答
90 浏览

android - 股票消息应用程序未在使用 Intent 呼叫调用的“发送至”中显示国家/地区代码?

我正在创建一个安卓应用程序。它有一个功能,如果用户点击一个按钮,它将打开带有国家代码的收件人号码的消息应用程序。

还包括国家代码的 Intent 调用。但是如果手机的国家代码属于我的国家,目的地股票消息应用程序不显示我的国家的国家代码。

但是如果代码属于外部国家,它会显示国家代码。

我的意向电话:

如果countrycode变量包含外国代码,则消息应用程序会在手机号码旁边显示国家代码

但是,如果国家代码包含我自己国家的数字,则国家代码不会显示在消息应用程序中,并且仅显示数字。

为什么会出现这个问题?解决它的步骤是什么。

0 投票
0 回答
745 浏览

android - IndexOutOfBoundsException:索引:16,大小:17?

我得到了一个非常奇怪的索引超出范围异常,这与我收到的任何其他异常不同。它说索引是 16 并且大小是 17 并且仍然崩溃?这是它崩溃的代码:

在这一行崩溃: MessageInterface mi = messages.get(i);

知道该怎么做吗?我以前从未见过这样的事情。

崩溃日志的副本:

0 投票
1 回答
5887 浏览

android - 当我的 Messenger 应用程序正在通话或想要拨打电话时,如何检测 Skype/telegram/whatsapp 通话?

我想知道是否有一种方法可以检测正在进行的 Skype 呼叫/电报/whatsapp/fb 信使呼叫等或来电等,就像与电话经理/听众的常规电话通话一样?我想要某种机制来检测来自我的应用程序的 Skype/电报等正在进行的/传入等呼叫。我遇到了这个解决方案:Android中Skype的呼叫检测,但不确定它是否适用于所有通用信使应用程序。是否有我可以在我身边实施的黑客或任何类型的侦听器来检测这些?任何想法都会很棒。

谢谢!