标签: broadcast

这个系统广播订购或正常广播?

我试图弄清楚系统事件广播是否使用有序广播或正常广播.事件是EVENT_REMINDER,在calendarprovider的源代码中,我注意到它设置了一个警报管理器来发送广播.

我找不到警报器如何发送它.我的猜测是正常的广播,但是当我尝试一些事情时,我注意到我可以通过在我的广播接收器中建立睡眠来延迟系统的通知(尝试长达10秒).这表明它们是按顺序处理的,系统接收器仅在我的完成时才被调用.

但我能确定这种行为吗?(在所有1.5> sdk版本中)文档声明在某些情况下,正常的广播也是有序处理的.这是为了节省资源.

对此的所有想法都是受欢迎的....谢谢,阿诺德

android broadcast

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

C2DM注册重试

我使用C2DM,如果注册成功,它工作正常.但有时注册失败,然后尝试注册:

Intent retryIntent = new Intent(C2DM_RETRY);
PendingIntent retryPIntent = PendingIntent.getBroadcast(context, 
        0 /*requestCode*/, retryIntent, 0 /*flags*/);

AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.ELAPSED_REALTIME,
             backoffTimeMs, retryPIntent);
Run Code Online (Sandbox Code Playgroud)

但是,如果警报管理器触发此意图该怎么办?我必须抓住它吗?因为某种程度上程序永远不会重新注册.

android broadcast android-intent android-c2dm

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

ACTION_BOOT_COMPLETED是粘性广播吗?

文档不说的一种方式或其他,但我无法想象,你为什么会不会让这种棒.

当SD卡不存在时,我的应用程序进入暂停模式 - 但是如果用户在系统完成启动之前启动我的应用程序,它将进入暂停模式.所以我想检测系统是否还没有完成启动并相应地等待几秒钟.

但是,如果您的应用程序必须已经运行以听取ACTION_BOOT_COMPLETED广播,那么它就变得没有实际意义了.

boot android broadcast android-intent

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

NFC广播问题

我真的读了10或20个关于这个的主题,不幸的是我没有让它工作.我的接收器可以捕获广播,但前提是我sendBroadcast(intent)从我的应用程序发送它.我想让它从NFC适配器捕获广播.Fe有人将NFC标签放在我的设备附近然后我的应用程序应该在浏览菜单中启动或显示,但这不会发生.即使我的应用程序启动,并且我将NFC标签放在设备附近,它也无法捕获它,并且在浏览菜单中我看到其他应用程序,这可以.我的接收者:

public class SomeBroadcastReceiver extends BroadcastReceiver {
private final String TAG = "SomeBroadcastReceiver";
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "Got intent: " + intent);    
}
}    
Run Code Online (Sandbox Code Playgroud)

我的清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.nfc">
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.INTERNET" />

<application
    android:icon="@drawable/icon"
    android:label="@string/app_name">

<receiver android:enabled="true" android:name=".broadcast.SomeBroadcastReceiver">
    <intent-filter>
        <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
        <category android:name="android.intent.category.DEFAULT" />

            <action android:name="android.nfc.action.TECH_DISCOVERED"/>
        <meta-data android:name="android.nfc.action.TECH_DISCOVERED" android:resource="@xml/technologies"/>

        <action android:name="android.nfc.action.TAG_DISCOVERED"/>
</intent-filter>        
</receiver>

<activity android:name=".simulator.FakeTagsActivity"
    android:theme="@android:style/Theme.NoTitleBar">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

<activity android:name="TagViewer"
    android:theme="@android:style/Theme.NoTitleBar"> …
Run Code Online (Sandbox Code Playgroud)

android broadcast nfc

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

Android在启用热点的设备上发送UDP广播

在我的应用中,我想广播一些UDP数据包。我目前正在使用此方法来获取所需的广播地址:

InetAddress getBroadcastAddress() throws IOException {
WifiManager wifi = mContext.getSystemService(Context.WIFI_SERVICE);
DhcpInfo dhcp = wifi.getDhcpInfo();
// handle null somehow

int broadcast = (dhcp.ipAddress & dhcp.netmask) | ~dhcp.netmask;
byte[] quads = new byte[4];
for (int k = 0; k < 4; k++)
  quads[k] = (byte) ((broadcast >> k * 8) & 0xFF);
return InetAddress.getByAddress(quads);
}  
Run Code Online (Sandbox Code Playgroud)

-> https://code.google.com/p/boxeeremote/wiki/AndroidUDP

效果很好,但是如果设备已激活热点并尝试在引发SocketException之后尝试广播数据包:SocketException: sendto failed: ENETUNREACH (Network is unreachable)
如何在“提供”热点的设备上获取正确的广播地址?我尝试过的所有单播地址都运行良好...

问候与问候

PS:最小的SDK是API 8

android udp broadcast wifi android-networking

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

多服务器发现 - Java/Android

我有一个应用程序,可以存在多个服务器.有很多关于如何使用UDP来发现服务器的例子,但似乎这只适用于单个服务器.

如果存在多个响应会发生什么?它们是否排队,损坏(有UDP陷阱)或其他什么?

我想了解如何从Android设备发送的UDP广播中接收多个响应.如果这不可行,是否有任何其他推荐的方法用于Android客户端的多服务器发现..

谢谢

java android udp broadcast

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

在Angular中,如何确保在广播消息时加载$ broadcast侦听器

我的Angular应用程序中有两个控制器.当某个数据更新为一个时,它会发出$ broadcast事件,如下所示:

        $scope.updateTableInfo = function (table) {
           $rootScope.$broadcast ("updateTableInfo", table);
        }
Run Code Online (Sandbox Code Playgroud)

在另一个控制器中,有一个侦听器设置,用于侦听此更新:

       $rootScope.$on ("updateTableInfo", function (event, table) {
              // do stuff here
       });
Run Code Online (Sandbox Code Playgroud)

不幸的是,似乎如果在第一个控制器中定义updateTableInfo()之后立即调用它,则第二个控制器还没有准备好收听它,并且错过了更新.如何确保控制器始终可以相互通信?

broadcast angularjs angularjs-scope angularjs-controller

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

spark错误"看来你正试图从广播中引用SparkContext"

以下是我班级的功能:

def labeling(self, value, labelMap, dtype='string'):
        if dtype.value == 'string':
            result = [i for v,i in labelMap.value if value==v][0]
            return result
        else:
            result = [i for v,i in labelMap.value if value<v][0]
            return result

def labelByValue(self, labelMap, dtype='string'):
        labeling = self.labeling
        labelMap = self.sc.broadcast(labelMap)
        dtype = self.sc.broadcast(dtype)
        self.RDD = self.RDD.map(labeling)
Run Code Online (Sandbox Code Playgroud)

但是当我在" main "中调用下面的函数时,它报告错误如:""看来你正试图从广播中引用SparkContext""

class.RDD.labelByValue((('a', 1), ('b', 2), ('c', 3)))
Run Code Online (Sandbox Code Playgroud)

我自己找不到任何东西.所以我来这里寻求帮助提前谢谢.

broadcast pyspark

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

$ rootscope.$ emit/$ broadcast不会传递参数

我有以下内容:

   $rootScope.$on('setmoney',function (thisdata) {

            console.log("setting money");
            console.log("money is : " + thisdata);
});
Run Code Online (Sandbox Code Playgroud)

而在其他地方:

 $rootScope.$broadcast('setmoney', {cash: 100000});
Run Code Online (Sandbox Code Playgroud)

我怎样才能确保我能在setmoney rootscope.on函数中检索参数现金?

此数据后的输出:

Object {name: "setmoney", targetScope: Scope, defaultPrevented: false, currentScope: Scope}
currentScope
:
null
defaultPrevented
:
false
name
:
"setmoney"
preventDefault
:
()
targetScope
:
Scope
__proto__
:
Object
Run Code Online (Sandbox Code Playgroud)

broadcast angularjs rootscope

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

(朱莉娅)。+运算符似乎未使用我的自定义广播功能,为什么?

我正在实现一个只有一个非零值的自定义矩阵,无论您执行什么操作,这都是矩阵中唯一一个可以为非零值的单元格。我称它为SVMatrix(单值矩阵)。我到目前为止的代码是

struct SVMatrix{T} <: Base.AbstractMatrix{T}
    value::T
    index::Tuple{Int,Int}
    size::Tuple{Int,Int}
end

function Base.broadcast(+, A::SVMatrix, B::AbstractArray)
    SVMatrix(A.value+B[A.index...], A.index, A.size) 
end

function Base.getindex(A::SVMatrix{T}, i::Int) where {T}
    if i == A.index[1] + A.index[2]*A.size[1]
        A.value
    else
        0
    end
end


function Base.getindex(A::SVMatrix{T}, i::Vararg{Int,2}) where {T}
    if i == A.index
        return A.value
    else
        0
    end
end

function Base.size(A::SVMatrix)
    A.size
end

Run Code Online (Sandbox Code Playgroud)

然后,我按照以下方式将广播功能与。+运算符一起计时

function time(n::Int)
    A = SVMatrix(1.0, (3,4), (n, n))
    B = rand(n,n)
    @time broadcast(+, A, B)
    @time A .+ B
end

time(1000)
println()
time(1000)
Run Code Online (Sandbox Code Playgroud)

得到了结果

 0.000000 seconds
 0.008207 …
Run Code Online (Sandbox Code Playgroud)

broadcast matrix julia

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