Articles of android broadcast

Android服务:START_STICKY不适用于Kitkat

我在应用程序中使用服务来监听用户按下他/她的电源按钮的次数。 实施在所有设备上都运行良好。 但是当我在Android Kitkat上测试应用程序时,我注意到了一些错误。 只要我将应用程序从最近的应用程序中移开,应用程序就不再会监听电源按钮。 这是我正在使用的代码: public class Receiver extends Service { Notification notification; private static final int NOTIFICATION_ID = 0; NotificationManager manager; PendingIntent toOpen; Intent intent; private BroadcastReceiver POWER_BUTTON = new Powerbuttonrecceiver(); @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public int onStartCommand(Intent intent, int flags, int […]

如何在onStop()中检查屏幕开/关状态?

如此处所述,当屏幕熄灭时,将onStop()当前Activity的onStop() 。 我需要在onStop()我的Activity的onStop()时检查屏幕的开/关状态。 所以我为这些操作注册了一个BroadcastReceiver ( ACTION_SCREEN_ON和ACTION_SCREEN_OFF )以记录当前的开/关状态(它们正常工作,我已经记录了!)。 但当我关闭屏幕并检查onStop的开/关状态时,它表示屏幕已打开。 为什么? 我认为接收器必须在onStop之前收到ACTION_SCREEN_OFF所以这有什么问题?

收听传入的Whatsapp消息/通知

我正在开发一个基于通知的应用程序,我需要收听传入的通知。 我已经能够收听来电,短信,邮件等。我不知道如何通过代码在Whatsapp上听朋友的ping或消息。 这真的可以吗? 如果是这样,怎么样? 可以使用Accessibility Service ,使用Package Name作为“com.whatsapp”吗?

通知中的音乐播放器控制

如何在android中设置播放/暂停,下一个和上一个按钮的通知。 我是Android的新手,也是堆栈溢出的新手。 所以请耐心等待。 我开始播放歌曲时设置通知,如下所示: ` @SuppressLint(“NewApi”) public void setNotification(String songName){ String ns = Context.NOTIFICATION_SERVICE; NotificationManager notificationManager = (NotificationManager) getSystemService(ns); @SuppressWarnings(“deprecation”) Notification notification = new Notification(R.drawable.god_img, null, System.currentTimeMillis()); RemoteViews notificationView = new RemoteViews(getPackageName(), R.layout.notification_mediacontroller); //the intent that is started when the notification is clicked (works) Intent notificationIntent = new Intent(this, AudioBookListActivity.class); PendingIntent pendingNotificationIntent = PendingIntent.getActivity(this, 0, […]

如何区分Android中编程连接的蓝牙设备?

无论是蓝牙耳机还是手机? 如何在android代码中区分bluetooth headset和bluetooth enabled android设备。 我正在开发一个小应用程序,因为我有一个通过蓝牙阻止数据传输的function,但它需要通过蓝牙耳机进行通信。 我提到的例子和代码,他们build议我只配对/取消配对蓝牙设备。 Android:如何以编程方式配对蓝牙设备? or else 获取所有连接的设备。 在Android中,如何获取连接的蓝牙设备的configuration文件? 是否可以在与设备连接types有关的设备中获得任何广播消息? 请帮助我区分连接的蓝牙设备为耳机/ Android设备(手机)等。 先谢谢你。

如何让应用程序的广播接收器保持监听,而不需要在后台运行服务

我正在试图制作一个android应用程序,它可以侦听到wifi更改广播并执行一些操作。 但是问题在于当进程被杀时它不能工作。 我发现这个问题,说没有一个活动就不行 如何创build没有活动/服务的BroadcastReceiver? 所以这不是一个select。 因此,我创build了一个空的活动。 我不想创build一个在后台运行的服务。 我怎样才能使我的应用程序保持听取,甚至当它被杀死。 我已经在清单中注册了广播。 <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name="com.background.service.BroadCastReceiver"> <intent-filter> <action android:name="android.net.wifi.WIFI_STATE_CHANGED"/> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> 这是我的class public class BroadCastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //do some action } }

无法取消蓝牙发现过程

我需要在周围地区扫描蓝牙设备6到12秒。 在这段时间之后,我需要停止发现新设备。 以下代码应该: 开始扫描蓝牙设备 打印出任何find的 6秒后,取消所有发现和重复过程 问题是,蓝牙发现永远不会被取消。 在这段代码运行一两分钟之后, onReceive会在同一秒内被调用几十次… public void startTrackingButton(View view) { Log.d("MAIN", "Track button pressed, isTracking: " + !isTracking); if (isTracking) { isTracking = false; } else { isTracking = true; Thread keepScanning = new Thread(new Runnable() { @Override public void run() { while (isTracking) { if (mBluetoothAdapter.isDiscovering()) { Log.d("MAIN", "Cancelling discovery!"); […]

在Broadcast Receiver中访问应用程序类

我想检查广播接收器中的互联网连接; 并将结果(一个布尔标志)设置为一个全局variables,在整个应用程序中使用它,在if条件下; 如果互联网断开连接,请将主要活动中的状态图像视图设置为红色图像,如果连接,则将其设置为绿色。 我跟着这个话题。 但在Broadcast Receiver中没有getApplication() ; 而我应该使用getApplicationContext()来代替。 另一方面, 这个话题: 当在广播接收器中编写代码时,它不是一个上下文,而是在onReceive方法中给定一个上下文,只能调用getApplicationContext()。 这也意味着您不能保证在BroadcastReceiver中访问您的应用程序。 有什么担忧? 如何在广播Receiver中访问我的应用程序类? 有没有更好的解决scheme来检查互联网连接,设置全局variables,并改变我的状态imageview?

android.intent.action.BOOT_COMPLETED Intent在“重新启动”或“重新启动”

Android android.intent.action.BOOT_COMPLETED如果我使用“重新启动”或“重新启动” ,则不会收到意图,但是如果closures设备并且在设备上,则会工作。 有没有办法使这项工作?

BroadcastReceiver屏幕开/关不起作用

我试图使用BroadcastReceiver,但它不工作,请帮我解决这个问题。 MyReceiver.java package com.example.broadcast_receiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Log.i("[BroadcastReceiver]", "MyReceiver"); if(intent.getAction().equals(Intent.ACTION_SCREEN_ON)){ Log.i("[BroadcastReceiver]", "Screen ON"); } else if(intent.getAction().equals(Intent.ACTION_SCREEN_OFF)){ Log.i("[BroadcastReceiver]", "Screen OFF"); } } } AndroidManifest.xml中 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.broadcast_receiver" android:versionCode="1" android:versionName="1.0" […]