标签: broadcastreceiver

如何使用LocalBroadcastManager?

LocalBroadcastManager谷歌文档服务广播文档中所述如何使用/定位?

我试图谷歌它,但没有可用的代码开始?

文件说如果我想在我的应用程序进程内部进行广播,我应该使用它,但我不知道在哪里寻找这个.

任何帮助/评论?

更新:我知道如何使用广播,但不知道如何LocalBroadcastManager在我的项目中使用.

android broadcastreceiver

440
推荐指数
8
解决办法
21万
查看次数

尝试在Android上启动服务

当设备在Android上启动时,我一直在尝试启动服务,但我无法让它工作.我在网上看了很多链接,但没有一个代码可以工作.我忘记了什么吗?

AndroidManifest.xml中

<receiver
    android:name=".StartServiceAtBootReceiver"
    android:enabled="true"
    android:exported="false"
    android:label="StartServiceAtBootReceiver" >
    <intent-filter>
        <action android:name="android.intent.action._BOOT_COMPLETED" />
    </intent-filter>
</receiver>

<service
    android:name="com.test.RunService"
    android:enabled="true" />
Run Code Online (Sandbox Code Playgroud)

广播接收器

public void onReceive(Context context, Intent intent) {
    if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
        Intent serviceLauncher = new Intent(context, RunService.class);
        context.startService(serviceLauncher);
        Log.v("TEST", "Service loaded at start");
    }
}
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver android-service

327
推荐指数
10
解决办法
19万
查看次数

在服务中获取上下文

有没有可靠的方法来获得Context一个Service

我想注册广播接收器,ACTION_PHONE_STATE_CHANGED但我不需要我的应用程序总是得到这些信息,所以我不把它放在Manifest.

但是,当我需要这些信息时,我不能让GC杀死广播接收器,因此我正在注册广播接收器Service.

因此,我需要一个Context来打电话registerReceiver().当我不再需要时,ACTION_PHONE_STATE_CHANGED取消注册它.

有小费吗?

android broadcastreceiver android-service

268
推荐指数
6
解决办法
12万
查看次数

如何检查Receiver是否在Android中注册?

我需要检查我的注册接收者是否仍然注册,如果不是我如何检查任何方法?

api android broadcastreceiver android-broadcast android-broadcastreceiver

236
推荐指数
8
解决办法
12万
查看次数

在Android应用程序中检查互联网连接的广播接收器

我正在开发一个用于检查互联网连接的Android广播接收器.

问题是我的广播接收器被调用了两次.我希望它只在网络可用时才被调用.如果它不可用,我不希望得到通知.

这是广播接收器

public class NetworkChangeReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(final Context context, final Intent intent) {
        final ConnectivityManager connMgr = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);

        final android.net.NetworkInfo wifi = connMgr
                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);

        final android.net.NetworkInfo mobile = connMgr
                .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

        if (wifi.isAvailable() || mobile.isAvailable()) {
            // Do something

            Log.d("Network Available ", "Flag No 1");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是manifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.broadcastreceiverforinternetconnection"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <receiver android:name=".NetworkChangeReceiver" >
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" …
Run Code Online (Sandbox Code Playgroud)

java android broadcastreceiver android-networking android-wifi

228
推荐指数
12
解决办法
25万
查看次数

如何在启动时启动我的应用程序?

我尝试在链接中使用示例代码,但它似乎已过时,但它不起作用.那么当Android完成启动时,我需要做些什么更改以及让我的应用自动启动哪些文件?

android startup broadcastreceiver

227
推荐指数
5
解决办法
30万
查看次数

以编程方式注册广播接收器

我想知道以编程方式注册广播接收器的最佳实践/方法是什么.我想根据用户的选择注册特定的接收器.

由于注册是通过清单文件完成的,我想知道是否有一种正确的方法可以在代码中实现这一点.

android broadcastreceiver

145
推荐指数
4
解决办法
20万
查看次数

在Android中发送和接收短信和彩信(pre Kit Kat Android 4.4)

我已经弄明白了如何发送和接收短信.要发送短信,我必须调用该类的sendTextMessage()sendMultipartTextMessage()方法SmsManager.要接收SMS消息,我必须在AndroidMainfest.xml文件中注册接收器.然后我不得不重写onReceive()方法BroadcastReceiver.我在下面列举了一些例子.

MainActivity.java

public class MainActivity extends Activity {
    private static String SENT = "SMS_SENT";
    private static String DELIVERED = "SMS_DELIVERED";
    private static int MAX_SMS_MESSAGE_LENGTH = 160;

    // ---sends an SMS message to another device---
    public static void sendSMS(String phoneNumber, String message) {

        PendingIntent piSent = PendingIntent.getBroadcast(mContext, 0, new Intent(SENT), 0);
        PendingIntent piDelivered = PendingIntent.getBroadcast(mContext, 0,new Intent(DELIVERED), 0);
        SmsManager smsManager = SmsManager.getDefault();

        int length = message.length();          
        if(length > MAX_SMS_MESSAGE_LENGTH) …
Run Code Online (Sandbox Code Playgroud)

sms android mms broadcastreceiver android-manifest

131
推荐指数
3
解决办法
11万
查看次数

BroadcastReceiver有多个过滤器或多个BroadcastReceivers?

我有一个需要捕获两个不同广播的Android活动.我目前的方法是BroadcastReceiver在Activity中使用一个单独的方法来捕获广播:

public class MyActivity extends Activity {
    private MyActivity.BroadcastListener mBroadcastListener;
    private boolean mIsActivityPaused = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mylayout);

        // Create the broadcast listener and register the filters
        mIsActivityPaused = false;
        mBroadcastListener = new BroadcastListener();

        IntentFilter filter = new IntentFilter();
        filter.addAction(Params.INTENT_REFRESH);
        filter.addAction(Params.INTENT_UPDATE);
        registerReceiver(mBroadcastListener, filter);
    }

    @Override
    protected void onResume() {
        super.onResume();
        mIsActivityPaused = false;
    }

    @Override
    protected void onPause() {
        super.onPause();
        mIsActivityPaused = true;
    }

    @Override
    protected void onDestroy() {
        unregisterReceiver(mBroadcastListener);
        super.onDestroy();
    }

    private …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver android-intent

107
推荐指数
3
解决办法
7万
查看次数

接收方未注册异常错误?

在我的开发者控制台中,人们不断报告我无法在任何手机上重现的错误.一个人在尝试打开电池服务的设置屏幕时留下了一条消息说他得到了它.从错误中可以看出,它表示接收器未注册.

java.lang.RuntimeException: Unable to stop service .BatteryService@4616d688:  java.lang.IllegalArgumentException: Receiver not registered: com.app.notifyme.BatteryService$BatteryNotifyReceiver@4616d9d0
at android.app.ActivityThread.handleStopService(ActivityThread.java:3164)
at android.app.ActivityThread.access$3900(ActivityThread.java:129)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2173)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:4701)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalArgumentException: Receiver not registered:com..BatteryService$BatteryNotifyReceiver@4616d9d0
at android.app.ActivityThread$PackageInfo.forgetReceiverDispatcher(ActivityThread.java:805)
at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:859)
at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:331)
at com.app.notifyme.BatteryService.onDestroy(BatteryService.java:128)
at android.app.ActivityThread.handleStopService(ActivityThread.java:3150)
Run Code Online (Sandbox Code Playgroud)

我注册的是我的onCreate

@Override
public void onCreate(){
    super.onCreate();
    SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
    IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
    filter.addAction(Intent.ACTION_POWER_CONNECTED);
    filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
    registerReceiver(batteryNotifyReceiver,filter);
    pref.registerOnSharedPreferenceChangeListener(this);
}
Run Code Online (Sandbox Code Playgroud)

取消注册onDestroy以及首选项侦听器

    @Override
public void onDestroy(){
    super.onDestroy();
    unregisterReceiver(batteryNotifyReceiver);

} …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver illegalargumentexception

106
推荐指数
6
解决办法
10万
查看次数