标签: broadcast

如何在BroadcastReceiver类中使用getApplicationContext?

我正在使用广播类使用此代码来收听短信

package com.escortme.basic;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;

public class SMSReceiverActivity extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        // Parse the SMS.
        Bundle bundle = intent.getExtras();
        SmsMessage[] msgs = null;
        String str = "";
        if (bundle != null)
        {
            // Retrieve the SMS.
            Object[] pdus = (Object[]) bundle.get("pdus");
            msgs = new SmsMessage[pdus.length];
            for (int i=0; i<msgs.length; i++)
            {
                msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
                // In case of a particular App / …
Run Code Online (Sandbox Code Playgroud)

android broadcast

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

UDP广播/多播与单播行为(丢弃的数据包)

我有一个嵌入式设备(源),它通过UDP数据包以20毫秒(=约330字节)的块发送(音频)数据流.因此,网络容量相当低,约为16kBps(实际上由于UDP/IP开销而略多).设备运行lwIP堆栈(v1.3.2)并使用H&D Wireless的WiFi解决方案(HDG104,WiFi G模式)连接到WiFi网络.目的地(接收器)是Windows Vista PC,它也使用USB WiFi加密狗(WiFi G模式)连接到WiFi网络.PC上运行的程序允许我监视丢弃的数据包的数量.我也在运行Wireshark来直接分析网络流量.此时,没有其他客户端通过网络主动发送数据.

当我使用广播或多播发送数据时,许多数据包被丢弃,有时高达15%.但是,当我切换到使用UDP单播时,丢弃的数据包数量可以忽略不计(<2%).

使用UDP我希望丢弃数据包(在我的音频应用程序中这是正常的),但为什么我看到广播/多播和单播之间的性能有如此大的差异?

我的路由器是WRT54GS(FW v7.50.2),PC(接收器)使用的是Trendnet TEW-648UB网络适配器,在WiFi G模式下运行.

udp multicast broadcast lwip

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

范围.$ on在指令内创建时不起作用

我已经为我的应用程序创建了一个指令,在下面的问题中提到了 如何使用AngularJS或Javascript提供下载文件?指令代码如下所示

    appModule.directive('fileDownload', function ($compile) {
        var fd = {
            restrict: 'A',
            link: function (scope, iElement, iAttrs) {

                scope.$on("downloadFile", function (e, url) {
                    var iFrame = iElement.find("iframe");
                    if (!(iFrame && iFrame.length > 0)) {
                        iFrame = $("<iframe style='position:fixed;display:none;top:-1px;left:-1px;'/>");
                        iElement.append(iFrame);
                    }
                    iFrame.attr("src", url);
                });
            }
        };
        return fd;
    });
Run Code Online (Sandbox Code Playgroud)

这里使用范围.$ on,当我通过$ scope.$ emit或$ scope.$ broadcast调用此事件时,它不起作用.我的控制器代码如下所示

    function reportsController($scope, $http) {
        var self = this;

        $scope.$broadcast("downloadFile", 'http://google.com');
        $scope.$emit("downloadFile", 'http://google.com');
    }
Run Code Online (Sandbox Code Playgroud)

我的html文件如下

    <div ng-controller="reportsController" id="repctrl">
        <a file-download></a>
    </div>
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

@Edit:在编译阶段添加了subscribe($ on),以避免在控制器中使用$ timeout.在这里 …

events directive broadcast emit angularjs

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

如何在JavaScript(或jQuery)中实现自定义广播事件?

我想实现一个可以"广播"的自定义事件,而不是发送到特定目标.只有那些已将自己注册为此类事件的侦听器的元素才会收到它们.

我的想法如下.

首先,在代码的不同位置,会有表单的陈述

some_subscriber.on_signal( 'some_signal', some_handler );
Run Code Online (Sandbox Code Playgroud)

我正在使用这个术语signal作为"广播事件"的简写.在上面的表达式中some_subscriber,通过为它提供一个处理程序,将自身注册为这种信号的一种类型(称为"some_signal")的监听器.

在代码的其他地方,会有表格的陈述

publisher.signal_types[ 'some_signal' ].broadcast( event_data );
Run Code Online (Sandbox Code Playgroud)

当执行这些语句时,会生成一个新事件并" 广播 ".我的意思是,调用该broadcast方法的代码没有关于它发出的信号的侦听器的直接信息.


我已经实现这个想法的草图在此的jsfiddle,主要是为了说明我用文字描述的上述1.(它肯定不是生产级的,我不是特别相信它可以这么做.)

该实现的关键要素如下.首先,发布者对象不会跟踪他们的订阅者,这可以在这种发布者的工厂方法的实现中看到,如下所示:

function make_publisher ( signal_types ) {

    // ...

    var _
    ,   signal = {}
    ,   ping = function ( type ) {
                   signal[ type ].broadcast( ... );
               }
    ;

    signal_types.forEach( function ( type ) {
                             signal[ type ] = $.register_signal_type( type );
                         } );

    return { signal_types: signal_types, ping: …
Run Code Online (Sandbox Code Playgroud)

javascript jquery events broadcast javascript-events

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

Android广播地址

我正在为我的Android手机制作一个Client Server应用程序.

我创建了一个UDP服务器,Python其中坐着并侦听连接.

我可以IP直接放置服务器地址192.169.0.100,它可以很好地发送数据.我也可以放入192.168.0.255并找到服务器192.169.0.100.

是否可以获取我的Android手机所连接的网络的广播地址?我只会在我的Wifi网络或其他Wifi网络上使用此应用程序.

干杯

java android udp broadcast android-networking

8
推荐指数
3
解决办法
2万
查看次数

使用Objective-C,C或C++向Icecast/SHOUTcast广播

我想在不使用自己的广播公司的情况下向SHOUTcast或Icecast服务器提供音频数据,因为我将在包括移动设备在内的各种平台上使用它.

我需要协议描述,开源项目或样本,以便能够使用Objective-C,C或C++将音频数据(从麦克风或文件)发送到SHOUTcast和Icecast服务器.

在哪里可以找到构建正确的SHOUTcast/Icecast源客户端所需的信息?

audio shoutcast objective-c broadcast icecast

8
推荐指数
1
解决办法
5480
查看次数

在Android wifi热点获取wifi广播地址

我正在开发一个应用程序,它使用wifi在所有与我的应用程序在同一网络中的手机之间广播UDP消息.

我设法从许多具有外部AP的手机发送/接收数据包,这是我的路由器.

但鉴于没有AP的情况,我希望用户能够使用他们手机的Wifi热点功能,这样他们仍然可以使用我的应用程序.因此,其中一部手机将是wifi热点,其他所有手机都将连接到该热点.

我要求用户通过自己的方式连接到wifi.无论是外部AP还是外部AP.然后当我的应用程序启动时,它会检查手机是否连接到wifi网络,调用WifiManager.isWifiEnabled()和NetworkInfo.isConnected().

问题是,如果我在使用热点的手机中调用这些功能,则函数isConnected()将返回false.我无法使用WifiManager.getDhcpInfo()获取广播地址.连接到热点的其他手机完全可以正常工作.但由于WifiManager被禁用,热点手机无法发送任何广播.

所以,我的问题是"有没有办法检查手机目前是否是一个wifi热点?如果有的话,有什么办法可以获得它的广播地址吗?"

android udp broadcast wifi

8
推荐指数
1
解决办法
8428
查看次数

如何使用chrome.sockets.udp API进行UDP广播?

我正在开发Chrome扩展程序,我想在本地网络上广播UDP数据包.

我研究了这个Chrome API.

 chrome.sockets.udp.create({}, function(s){   
        chrome.sockets.udp.bind(s.socketId, address, 0, function(ret){
            chrome.sockets.udp.send(s.socketId, data, "172.16.0.0", 5019, 
                function(sendinfo){console.log(data.byteLength); console.log(sendinfo);})})})
Run Code Online (Sandbox Code Playgroud)

如果我指定了一个地址172.16.0.0,上面的代码就可以了.但如果我换172.16.0.0255.255.255.255,我得到了{resultCode: -10}表示错误.

我的manifest.json:

{
  "manifest_version": 2,
  "name": "UDP",
  "description": "Test",
  "version": "2",
  "minimum_chrome_version": "23",
  "app": {
    "background": {
      "scripts": ["main.js"]
    }
  },
  "sockets":{
    "udp": {"send":["*:*"], "bind":["*:*"]}
  }, 
  "permissions":["system.network"]
}
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我尝试了chrome.socket,即使在广播上也能正常工作.但从Chrome 33开始,API已被弃用.

udp google-chrome broadcast google-chrome-extension

8
推荐指数
1
解决办法
3440
查看次数

Spark中广播对象的最大大小是多少?

使用Dataframe 广播功能或SparkContext 广播功能时,可以分配给所有执行程序的最大对象大小是多少?

broadcast dataframe apache-spark apache-spark-sql

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

Dart - 发送 UDP 广播

我正在寻求帮助,因为我似乎找不到使用 Dart 在本地网络内发送 UDP 广播的方法。

到目前为止,我设法使用 UDP 与RawDatagramSocket. 我可以向特定地址发送消息。

我无法做的是向本地网络内的任何设备发送广播(网络掩码为 255.255.255.0),并等待可能的(多个)答案。这是我正在使用的代码:

RawDatagramSocket.bind('127.0.0.1', 8889)
    .then((RawDatagramSocket udpSocket) {
        udpSocket.listen((e) {
            Datagram dg = udpSocket.receive();
            if (dg != null) {
                //stuff
            }
        });
        udpSocket.send(utf8.encode('TEST'), DESTINATION_ADDRESS, 8889);
});
Run Code Online (Sandbox Code Playgroud)

我试图取代DESTINATION_ADDRESSInternetAddress.anyIPv4,但我没有运气。我也在broadcastEnabled里面找到了这个属性RawDatagramSocket,但是我找不到关于如何使用它的更多信息。

预先感谢您的帮助。

sockets udp broadcast dart

8
推荐指数
1
解决办法
5034
查看次数