Questions tagged «broadcastreceiver»

BroadcastReceiver是一个Android组件,可响应系统范围的广播公告。

5
何时注册/注销活动中创建的广播接收器?
我需要在活动的onCreate事件中创建自定义广播接收器,并且显然我需要在活动的onDestroy事件中取消注册广播接收器 为了清楚起见,这是我使用的代码的一部分 public class AnActivity extends Activity { private ResponseReceiver receiver; public class ResponseReceiver extends BroadcastReceiver { public static final String ACTION_RESP = "mypackagename.intent.action.MESSAGE_PROCESSED"; @Override public void onReceive(Context context, Intent intent) { // TODO Start a dialogue if message indicates successfully posted to server } } /** Called when the …


2
清单与活动中的广播接收器注册
我需要一些帮助,以了解何时可以期望广播接收器在清单中进行注册后才能正常工作,而不必从正在运行的活动或服务中进行注册。 因此,例如,如果我使用以下意图过滤器注册独立接收器,则该接收器可以在不具有服务/活动引用的情况下运行: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.blk_burn.standalonereceiver" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" /> <uses-permission android:name="android.permission.WAKE_LOCK"/> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <receiver android:name="TestReceiver"> <intent-filter> <action android:name="android.media.AUDIO_BECOMING_NOISY"/> </intent-filter> </receiver> </application> </manifest> 但是如果我更换android.media.AUDIO_BECOMING_NOISY与android.intent.action.HEADSET_PLUG接收器没有被触发(Android文档) 根据我在该站点上发现的信息,您必须从已经运行的一项活动或服务中注册该接收器,以使其正常工作(发布)。 谁能告诉我为什么仅在清单中调整意图过滤器时为什么此方法不起作用,以及为什么需要在后台运行一个引用/注册接收器的服务? 有没有变通的方法,这样我就可以使用intent过滤器在我的应用清单中注册接收者了android.intent.action.HEADSET_PLUG? 我该如何确定android文档中的哪些Broadcast操作需要服务或活动进行注册,而不是在清单中添加正确的过滤器?

5
服务意图必须明确:意图
我现在有一个应用程序,通过广播接收器(MyStartupIntentReceiver)调用服务。为了调用服务,广播接收器中的代码是: public void onReceive(Context context, Intent intent) { Intent serviceIntent = new Intent(); serviceIntent.setAction("com.duk3r.eortologio2.MyService"); context.startService(serviceIntent); } 问题是,在Android 5.0 Lollipop中,出现以下错误(在早期版本的Android中,一切正常): Unable to start receiver com.duk3r.eortologio2.MyStartupIntentReceiver: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.duk3r.eortologio2.MyService } 为了将服务声明为显式且正常启动,我必须更改什么?在其他类似线程中尝试了一些答案,但尽管我摆脱了该消息,但该服务无法启动。


9
BroadcastReceiver没有收到BOOT_COMPLETED
我到处都是类似的问题,但是由于某种原因,我的BroadcastReceiver从未收到过android.intent.action.BOOT_COMPLETED Intent。 这是我的(相对)Android.Manifest文件: <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission> <receiver android:name=".BootReceiver" android:enabled="true" android:exported="true" android:label="BootReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"></action> </intent-filter> </receiver> 这是实际的接收方。 public class BootReceiver extends BroadcastReceiver { private static final String TAG="BootReceiver"; @Override public void onReceive(Context context,Intent intent){ try{ context.startService(new Intent(context,ConnectivityListener.class)); Log.i(TAG,"Starting Service ConnectivityListener"); }catch(Exception e){ Log.e(TAG,e.toString()); } } } 谢谢!任何帮助是极大的赞赏

6
从BroadcastReceiver启动服务
我的应用程序中有Service和BroadcastReceiver,但是如何直接从中启动服务BroadcastReceiver?使用 startService(new Intent(this, MyService.class)); 不起作用BroadcastReceiver,有什么想法吗? 编辑: context.startService(..); 的作品,我忘了上下文部分

4
在片段中注册和注销BroadcastReceiver
我的应用程序有一个带有3个片段选项卡的操作栏。在第二个片段中,我注册和注销了BroadcastReceiver。我注销在接收onPause和登记它onCreateView和onResume。 getActivity().registerReceiver(this.batteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 和 getActivity().unregisterReceiver(batteryInfoReceiver); 1)是否可以在onCreateView和onResume中两次注册相同的接收者?(是否无害?) 2)仅在onResume中注册接收者就足够了吗?

2
在Multi-Sim设备中检测来电的目标SimCard
我读了很多文章并尝试了许多解决方案,但是所有文章的共同点是它们都已过时,至少我找不到能在较新版本的Android上运行的解决方案。 发布1,结果: intent.getExtras().getInt("simId", -1)总是返回-1 发布2,结果:intent.getExtras().getInt("slot", -1)总是返回-1 发表3,结果: String[] array = new String[]{ "extra_asus_dial_use_dualsim", "com.android.phone.extra.slot", "slot", "simslot", "sim_slot", "subscription", "Subscription", "phone", "com.android.phone.DialingMode", "simSlot", "slot_id", "simId", "simnum", "phone_type", "slotId", "slotIdx" }; for (String item : array) { Log.i(TAG, "Sim Card - " + item + " -----> " + intent.getExtras().getInt(item)); } 日志: …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.