Articles of android broadcastreceiver

服务未收到活动的本地广播

我有一个Activity ,我在本地注册BroadcastReceiver ,如下所示: public class SomeActivity extends Activity{ public static final String PERFORM_SOME_ACTION = “PERFORM_SOME_ACTION”; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.some_activity_layout); ….. ….. IntentFilter filter = new IntentFilter(); filter.addAction(PERFORM_SOME_ACTION); receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { // perform some action … } }; registerReceiver(receiver, filter); } ….. […]

使用自定义广播接收器接收解析通知

我在我的应用程序中使用解析通知。 我正在使用GcmBroadcastReceiver接收通知警报。 但我看到很多通知收到我的应用程序。 我想更新状态栏中的通知,所以我使用自定义接收器。 当通过GcmBroadcastReceiver接收通知时,我的自定义广播接收器被调用。 所以在我的状态栏中同时包含gcm和自定义通知。 我只想要自定义通知。 如何解决这个问题呢? 清单代码: 申请类 : Parse.initialize(this, “app id”, “client id”); Incomingreceiver类: public class IncomingReceiver extends BroadcastReceiver { private static final int NOTIFICATION_ID = 1; public static int numMessages = 0; @Override public void onReceive(Context context, Intent intent) { try { String action = intent.getAction(); JSONObject json = new JSONObject(intent.getExtras().getString(“com.parse.Data”)); […]

处理android 7 Nougat上的网络更改

有没有办法在Android N上处理wi-fi或蜂窝网络启用/禁用。我试图添加带有intent-filter “android.net.conn.CONNECTIVITY_CHANGE”广播接收器,但它已被弃用N和更高版本。

如何在应用程序处于前台时处理火基通知

我已将Fire基础云消息传递与我的应用程序集成。 当我从firebase控制台发送通知时,如果app处于后台/未打开,那么我收到通知, 但是当app处于前台/打开状态时无法接收通知 所有建议都表示赞赏。

Android 7意图附加function缺失

有没有人知道Android 7.0(Nougat)与Android 6.0(Lollipop)相比如何处理意图附加function有什么变化? 长话短说:我的应用程序可以在4.1(16)到6.0(23)的所有版本上运行,但在android 7.0(24)上崩溃了! 该应用程序创建一个待定意图,意图是具有附加function的自定义广播接收器。 但是,在Android 7上,广播接收器接收的意图中没有任何附加内容。 MainActivity.java Intent intent = new Intent(context, PollServerReceiver.class); // TODO: Remove after DEBUGGING is completed! intent.putExtra(“TESTING1”, “testing1”); intent.putExtra(“TESTING2”, “testing2”); intent.putExtra(“TESTING3”, “testing3”); // PendingIntent to be triggered when the alarm goes off. final PendingIntent pIntent = PendingIntent.getBroadcast(context, PollServerReceiver.REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT); // Setup alarm to schedule our service runs. AlarmManager […]

Boot BroadcastReceiver无法在小米设备上运行

我有一个后续的BroadcastReceiver应该在启动完成后运行。 我已经在我的小米设备(Redmi 1s)上进行了测试,它没有运行,而在像三星这样的其他设备上它按预期运行。 public class DeviceBootReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if(intent.getAction().equals(“android.intent.action.BOOT_COMPLETED”)) { Toast.makeText(context, “I am Running”, Toast.LENGTH_SHORT).show(); } } } 我已在Manifest中设置了权限。 以下是我的广播接收器:

在Android O中断开广播充电器

现在已经发布了Android O的最终API,并且以下所有广播都没有列入白名单,我遇到以下问题: 在我的应用程序(目标API 25)中,我目前有一个BroadcastReceiver ,它侦听ACTION_POWER_CONNECTED和ACTION_POWER_DISCONNECTED系统事件。 现在我想更新我的应用程序以定位Android O,但随着此版本的出现,广播行为发生了巨大变化 : 针对Android O的应用无法再在其清单中为隐式广播注册广播接收器。 隐式广播是一种不专门针对该应用的广播。 由于两个广播都是隐式的,我只能通过Context.registerReceiver()方法注册它们,但问题就出现了:一旦我的应用程序被系统杀死或系统清除我的应用程序的内存(如由于设备内存不足,广播注册将丢失。 为了避免这个问题,我可以使用JobScheduler API和ACTION_POWER_CONNECTED的setRequiresCharging方法,但对于ACTION_POWER_DISCONNECTED我必须使用registerReceiver方法。 由于我的应用程序控制设备的音量(基于这些事件),因此没有错过任何这些事件非常重要。 那么我如何才能安全地侦听Android O中断开连接的电源事件? 顺便说一句。 我有WIFI断开连接事件的相同问题。 编辑:我希望没有来自前台服务的通知我这样做

WakefulBroadcastReceiver已弃用

为了创建接收器,我在我的旧项目中扩展了WakefulBroadcastReceiver 。 但现在它被deprecated 。 而不是WakefulBroadcastReceiver我现在应该使用哪个Receiver以及如何使用新方法转换下面的代码? 这是我的代码: public class TaskFinishReceiver extends WakefulBroadcastReceiver { private PowerManager mPowerManager; private PowerManager.WakeLock mWakeLock; @Override public void onReceive(Context context, Intent intent) { mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); turnOnScreen(); Intent wakeIntent = new Intent(); wakeIntent.setClassName(“com.packagename”, “com.packagename.activity.TaskFinished”); wakeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(wakeIntent); } public void turnOnScreen(){ mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, “tag”); mWakeLock.acquire(); } }

安装referrer无法在某些redmi设备中运行

我需要跟踪我的Android应用程序的安装推荐。 它在大多数设备上运行良好。 但在Redmi设备中,广播没有被触发。 我用Redmi Note 4测试了它 我已经通过ADB和Play商店测试了它。 两者都不会在Redmi设备中触发广播 以下是我正在使用的代码 public class ReferrerReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.d(“Broadcast”, “RECEIVED!”); } } 请建议是否有人遇到同样的问题并得到一些解决方案?

关于Android O更改的BroadcastReceiver的生命周期

如果我通过mainfest文件声明一个BroadcastReceiver用于系统广播(例如ACTION_POWER_DISCONNECTED ),系统将在每次发送特定广播时调用它,因此BroadcastReceiver的生命周期不受限制。 但也有广播无法通过清单文件注册。 对于这些广播,我们必须使用相应的IntentFilter调用context.registerReceiver 。 假设我为BOOT_COMPLETED创建了一个BroadcastReceiver并BOOT_COMPLETED调用了context.registerReceiver ,并且从不调用unregisterReceiver这个接收器是否也永远存在(直到手机重启)? 针对Android O的应用无法再在其清单中为隐式广播注册广播接收器。 隐式广播是一种不专门针对该应用的广播。 如果我的猜想是正确的,这将是系统更改的一个简单的解决方法(当然你不应该这样做,但它是可能的)。 因此,在BOOT_COMPLETED广播之后注册的BOOT_COMPLETED具有相同的生命周期(保持到下一次重启)作为通过清单自动注册的BroadcastReceiver?