Articles of 广播

android:如何听“sd卡意外删除”

我有一个使用SD卡内容的程序。 我想听听不同的状态,如sd-card mount或sd-card意外删除。 我该怎么办 一个例子将是一个很大的帮助。 谢谢大家

广播接收器和MainActivity之间的Android通信(将数据发送到活动)

我有一个简单的主要活动,必须停止直到收到短信…如何在BroadcastReceiver的onReceive()方法中从MainActivity启动方法? 有信号和等待吗? 我是否可以通过待处理的Intent传递内容,或者如何实现此通信?

在Android上接收广播消息

首先 – 对不起我的英语,我不是“本土作家”。 我正在用C ++发送广播消息,并希望在Android设备上接收它。 我创建了这样的代码: System.out.println(“receiveBroadcast()”); DatagramSocket socket = new DatagramSocket(3866); 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(packet.getAddress()); System.out.println(“Data received”); } 当我将其编译为标准的Java SE控制台应用程序并在连接到网络的其他计算机上运行时,它可以工作。 它不适用于Android,我不知道为什么。 […]

从一个apk /包发送广播到另一个apk /包

我需要从我的一个应用程序向另一个应用程序发送广播..任何帮助! 我的应用程序包是1)com.demo.database和2)com.demo.list Intent themesIntent = new Intent(ThemesManager.THEMES_UPDATED); themesIntent.putExtra(“package”, packageName); ctx.sendBroadcast(themesIntent); 不工作.. 编辑:

广播接收器最高优先级不起作用

我正在使用ACTION_MEDIA_BUTTON处理程序执行一个应用程序,但它似乎总是被MX Player或Apollo截获,我没有得到Intent 我已尝试在标记中设置1000和2147483647优先级,并在构造函数后直接使用setPriority 当没有MX Player或Apollo时,应用程序可以正常运行 我也试过使用谷歌播放的Headset拦截器应用程序,我试图通过自动启动应用程序拒绝MX Player的事件 – 没有什么帮助 in onCreate: IntentFilter filter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON); filter.addAction(Intent.ACTION_HEADSET_PLUG); filter.setPriority(1000); registerReceiver(receiver, filter); 在接收者 @Override public void onReceive(Context context, Intent intent) { if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) { // NEVER REACHES HERE WHEN MX PLAYER PRESENT. WORKS IF NOT 在清单中

关闭和打开手机后的AlarmManager对象

在我的应用程序中,我设置了一个警报 AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); … PendingIntent pendingIntent = PendingIntent.getBroadcast(context, id, intent, PendingIntent.FLAG_UPDATE_CURRENT); … alarmMgr.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pendingIntent); 它工作正常,除非我关闭并打开手机。 更具体地说,让我们说在10:20,我将闹钟设置为10:22,然后在10:21关闭并打开电话,闹钟将无效。 可能是什么问题? 这是pendingIntent的广播问题还是应该设置alarmManager对象的一些标志,以便它在这样的条件下工作?

获取本地网络(LAN)中的设备列表?

我正在寻找一种方法来查找局域网(LAN)中的所有设备(尤其是打印机)。 有没有办法区分打印机和其他设备(智能手机,笔记本电脑,电脑等)?

无法接收android.intent.action.EVENT_REMINDER广播

我想编写一个在日历提醒发生时触发的应用程序。 我意识到没有正式记录这样做的方法,但我在日志中看到当我的日历闹钟在我的手机(Droid X)上消失时,AlertReceiver表示它已收到android.intent.action.EVENT_REMINDER: 01-03 11:03:00.029 D 1523 AlertReceiver onReceive: a=android.intent.action.EVENT_REMINDER Intent { act=android.intent.action.EVENT_REMINDER dat=content://com.android.calendar/129407058000 flg=0x4 cmp=com.android.calendar/.AlertReceiver (has extras) } 所以,我设置了一个简单的BroadcastReceiver: package com.eshayne.android; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class CalendarTest extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { android.util.Log.i(“CalendarTest”, “CalendarTest.onReceive called!”); } } 这个清单: 不幸的是,当我把它放在我的手机上并设置一个带有提醒的日历活动时 – 当提醒提醒时,我仍然看到AlertReceiver日志条目,但不是我的。 我还在这里阅读了一些需要通过代码而不是清单注册的系统意图。 所以,我尝试了以下代码: package com.eshayne.android; […]

如何中止广播通知? (对于非有序广播)

我的应用程序处理Cell Broadcast消息,这是一种无序广播。 我希望我的应用程序接收此广播并终止CB消息的消息通知。 我发现可以通过使用带有优先级标记的intentfilter来抑制SMS通知,如下所示 所以我试图用这样的CB消息做同样的事情 但它没有用,日志猫看起来如下 从我的研究和下面的评论中,我了解到非有序广播不能被中止,所以我想做的就是抑制CB消息产生的通知(即CB_SMS警报和振动)。 任何人都可以帮我解决这个非有序广播通知的流产吗?

为什么LocalBroadcastManager不能工作而不是Context.registerReceiver?

我必须为这个应用程序实现一个function,它包含一个Activity和一个在后台工作的Service (它实现了Service ,而不是IntentService )。 我在互联网上经历了一些应该工作的教程,他们都使用了LocalBroadcastManager ,顺便说一句是Android推荐的: 如果您不需要跨应用程序发送广播,请考虑将此类与LocalBroadcastManager一起使用,而不是使用下面描述的更一般的工具。 我真的失去了一天,找出问题为什么它对我不起作用:它只有在我使用Context.sendBroadcast()时才有效。 和Context.registerReceiver()而不是LocalBroadcastManager方法。 现在我的应用程序正在运行,但我觉得我反对最佳做法,我不知道为什么。 任何想法为什么会发生? 编辑: 在我写完这个问题后,我进一步研究了这个问题。 LocalBroadcastManager通过Singleton工作,因为我们应该调用LocalBroadcastManager.getInstance(this).method() 。 我记录了两个实例(在Activity和Service ),它们有不同的内存地址。 现在我来到另一个问题, Service是否应该与调用它的Activity具有相同的Context ? 从本文开始 ,服务在主线程上运行,因此我认为Context将是相同的。 有什么想法吗? (对不起,长篇文章) 代码示例: 为MyService public class MyService extends Service { … // When an event is triggered, sends a broadcast Intent myIntent = new Intent(MainActivity.MY_INTENT); myIntent.putExtra(“myMsg”,”msg”); sendBroadcast(myIntent); // Previously I was trying: // […]