标签: broadcast

RemoteServiceException:无法在所有具有 oreo 和 pie 的 OnePlus 设备上传送广播

在过去的 3-4 个月中,我一直在 Crashlytics 中看到这种崩溃,仅适用于具有奥利奥和馅饼的 OnePlus 制造的设备(一个、3、5,5T、6、6T)。以前的android版本没有发生这种情况。

Fatal Exception: android.app.RemoteServiceException: can't deliver broadcast
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1844)
   at android.os.Handler.dispatchMessage(Handler.java:106)
   at android.os.Looper.loop(Looper.java:193)
   at android.app.ActivityThread.main(ActivityThread.java:6892)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Run Code Online (Sandbox Code Playgroud)

我在stackoverflow中查看了不同的帖子,重新检查了与Firebase Messaging相关的所有代码并更新到最新版本的firebase,但没有运气。如果有人遇到同样的崩溃,请帮忙。提前致谢。

编辑 1:可能的原因可能是,我将通知图标放在 mipmap 而不是 drawable 中。 https://forums.oneplus.com/threads/app-notification-provokes-continues-system-ui-crashes-and-possible-corruption-of-the-os.713575/

Android Oreo 通知崩溃系统 UI

https://issuetracker.google.com/issues/69109923

但是,如果我将通知放在 drawable 中,那么我该如何修复资源 ID,以免再次遇到下面提到的问题(为了修复资源 ID,我将通知图标从 drawable 移到了 mipmap)。最近发布的 gradle 忽略了 public.xml:

如何修复:android.app.RemoteServiceException:从包中发布的错误通知*:无法创建图标:StatusBarIcon

notifications android broadcast android-resources remoteserviceexception

6
推荐指数
0
解决办法
1702
查看次数

如何从服务器向WCF中的所有客户端发送通知消息(您可以说是广播)?

我想每秒从net tcp WCF服务向所有客户端发送通知消息,你可以说广播吗?

有用的答案之后

我编写了以下方法,将通知(心跳)发送给所有连接的用户

foreach (IHeartBeatCallback callback in subscribers)
{
  ThreadPool.QueueUserWorkItem(delegate(object state)
  {
    ICommunicationObject communicationCallback = (ICommunicationObject)callback;
    if (communicationCallback.State == CommunicationState.Opened)
    {
      try
      {
         callback.OnSendHeartBeat(_heartbeatInfo.message,    _heartbeatInfo.marketstart,_heartbeatInfo.marketend, _heartbeatInfo.isrunning,   DateTime.Now);
      }
      catch (CommunicationObjectAbortedException)
      {
        Logger.Log(LogType.Info, "BroadCast", "User aborted");
        communicationCallback.Abort();
      }
      catch (TimeoutException)
      {
       Logger.Log(LogType.Info, "BroadCast", "User timeout");
       communicationCallback.Abort();
      }
      catch (Exception ex)
      {
        Logger.Log(LogType.Error, "BroadCast", "Exception " + ex.Message + "\n" +  ex.StackTrace);
        communicationCallback.Abort();
      }

    }
    else
    {
      DeletionList.Add(callback);
    }
  }
  );
}
Run Code Online (Sandbox Code Playgroud)

我担心调用回调方法,因为客户端可能会关闭他的应用程序,但我使用try catch处理它,减少超时,并且并行发送广播,那就足够了吗?

wcf notifications broadcast wcf-callbacks

5
推荐指数
1
解决办法
2万
查看次数

如何在任何端口上侦听广播包?

使用.NET,如何在任何端口上监听发送到.255的udp广播数据包,而无需绑定到特定端口?

.net udp broadcast packet

5
推荐指数
2
解决办法
4438
查看次数

Android从任何应用程序检测触摸状态

是否可以从另一个应用程序中检测触摸事件,特别是滑动?我希望能够检测到用户是向左还是向右滑动(即使有两根手指 - 但不是必需的).也许我可以听一个服务或广播.

或者失败了,是否有一些API可能我可以轮询说每秒10次以获得触摸状态我可以计算其余的(为什么,我记得编写一个鼠标驱动程序选通COMO端口与IN OUTs在8086汇编编码器中XT上的TSR ......)!

无论如何,任何帮助表示赞赏.(我认为可以通过劫持主要启动器并进行透明的点击活动来完成,但这是严重的欺诈危险!)

service events android broadcast touch

5
推荐指数
1
解决办法
5029
查看次数

监听广播地址的Java DatagramSocket

我编写了一个简单的测试类,用于监听Eth并接收所有UDP数据包,这些数据包将转到端口5001:

public class Main {

  public static void main(String[] args) throws SocketException, UnknownHostException, IOException {
    DatagramSocket socket = new DatagramSocket(5001, InetAddress.getByName("255.255.255.255"));
    socket.setBroadcast(true);
    System.out.println("Listen on " + socket.getLocalAddress() + " from " + socket.getInetAddress() + " port " + socket.getBroadcast());
    byte[] buf = new byte[512];
    DatagramPacket packet = new DatagramPacket(buf, buf.length);
    while (true) {
      System.out.println("Waiting for data");
      socket.receive(packet);
      System.out.println("Data received");
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

它不起作用了.它打印出来Waiting for data,永远不会继续.tcpdump告诉我,UDP广播包来了.我究竟做错了什么?非常感谢你.

java broadcast

5
推荐指数
1
解决办法
2万
查看次数

zeromq广播到整个网络

我是ZeroMQ的新手,(并且通常使用套接字进行编程),但我尝试在ZeroMQ中实现(在Java中)对等模型.我想要的是当节点上线时,它向整个网络广播"我在这里,你可以通过这个地址联系我:......"消息.

我想如果网络上出现2个或更多节点,他们就能够找到对方而无需通过已知端点.

有没有人对如何实现这一点有任何想法?ZeroMQ甚至可以实现这一点吗?

java broadcast zeromq

5
推荐指数
1
解决办法
2215
查看次数

Android 4.2.2来电广播

我们在最新的Android Android 4.2.2上遇到呼叫广播的问题.

我们正在开发应用程序,它应该静音一些联系人.它在旧系统上运行良好,但在OS 4.2.2上,设备响铃约1-2秒,直到我们能够将其静音.

仅当设备处于睡眠模式(屏幕关闭)时才会发生这种情况.这个系统的广播是否以某种方式延迟?有没有人遇到类似的问题呢?谢谢你的回复.

编辑:经过一些实验(在Nexus 4上),我们发现了这一点:当我们关闭Wi-Fi时,问题就会消失,因此当从睡眠中再次开启时,Wi-Fi可能会使用太多的CPU时间(这是唯一的假设).而其他人认为我们发现:它发生了4次尝试中的3次.

android broadcast call

5
推荐指数
1
解决办法
478
查看次数

在芹菜中播放消息

我正在使用芹菜,并希望向几个工人发送广播任务.我试着这样做就像在http://docs.celeryproject.org/en/latest/userguide/routing.html#broadcast上描述的那样,所以我用任务创建简单的应用程序:

@celery.task
def do_something(value):
    print value
Run Code Online (Sandbox Code Playgroud)

在应用程序中我做了:

from kombu.common import Broadcast
CELERY_QUEUES = (Broadcast('broadcast_tasks'), )
CELERY_ROUTES = {'my_app.do_something': {'queue': 'broadcast_tasks'}}
Run Code Online (Sandbox Code Playgroud)

然后我试图向工人发送任务:

my_app.do_something.apply_async(['222'], queue='broadcast_tasks')
Run Code Online (Sandbox Code Playgroud)

要么:

my_app.do_something.apply_async(['222'])
Run Code Online (Sandbox Code Playgroud)

但不幸的是,第一种方式任务是"一般"只在一次发送给一个工人 - 所以如果我有两个工人,那么任务就完成一次或第一次和第二次工作.第二种方式我不知道在哪里完成这项任务,因为在任何工人身上都没有结果.也许你的某个人会知道为什么它不像广播一样工作,我在这里做错了什么.在此先感谢您的帮助.

python broadcast celery

5
推荐指数
1
解决办法
2738
查看次数

捕获Wi-Fi探针wequest时,手机不会发送所有存储的ssid

我用scapy构建了一个脚本,以在monitornig wi-fi界面中捕获探测请求。我成功捕获了请求以及其中包含的一些SSID。但是手机中存储的大多数网络都不会广播。对于这种情况的发生,目前还没有明确的模式。有些电话根本不播放ssid。

我正在尝试解释此行为背后的原因,但没有找到任何解释,除了应该广播隐藏网络以使电话能够连接到它们之外,但事实并非如此,并且大多数广播的是可见的。

iPhone的另一种行为是,iPhone似乎只能广播与其连接的网络,而没有其他任何广播。(无网络->没有SSID)。

我尝试过将接口放在各种渠道中,结果在广播的网络上会有所不同,但是设备中保存的绝大多数接口仍不会广播。

这背后有原因吗?还是一种强制设备将其全部广播的方法?

broadcast request ssid wifi probe

5
推荐指数
1
解决办法
2767
查看次数

客户端广播的socket.io

我只是从socket.io开始,我想要一些功能,该功能将从一个客户端通过服务器向所有客户端广播某种想法。

例如,当我需要处理很多事情时,我会玩游戏。

有两个选项:1.服务器和客户端的每个调用句柄,为每个调用创建socket.on('call');

但是我认为有更好的解决方案2。当我获得有效负载和套接字名称时,将在客户端调用中发出,它将从服务器调用到其他客户端。

像这样:SERVER

// Broadcast specific emit to all clisnts expect sender
socket.on('broadcast', function(data){
    socket.broadcast.emit(data.emitName, {id: socket.id, payload: data.payload});
});
Run Code Online (Sandbox Code Playgroud)

和客户:

// Call to server
socket.emit('broadcast', {emitName: 'playerMove', payload: {....}});

// Handle called from server
socket.on('playerMove', function(data){
   ....
});
Run Code Online (Sandbox Code Playgroud)

第二种解决方案可以节省很多时间,但这是安全的解决方案吗?还有更好的解决方案,如何从客户端广播通过服务器进行呼叫并打给其他客户端?

broadcast node.js socket.io

5
推荐指数
1
解决办法
2940
查看次数