Articles of android broadcast

收听传入的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" […]

致命exception:android.app.RemoteServiceException:无法在android.os.Handler.dispatchMessage上传递广播

我在我的android应用程序上使用广播消息(从io.socket我发送广播消息到我的活动页面)。 在一些设备三星SM-G950F和SM-A520F我得到一个错误“ Fatal Exception: android.app.RemoteServiceException: can't deliver broadcast ”。 我在Fabric crashlytics上遇到了这个错误,我也无法重现这个问题。 这是我从Fabric获得的日志, Fatal Exception: android.app.RemoteServiceException: can't deliver broadcast at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1813) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6776) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)

Android,播放可以分类的数据

我已经实现了一个扩展了NotificationListenerService的类,它可以很好地处理发布的通知。 然后我想要接收statusBarNotification对象并播放它。 我会做以下几点: @Override public void onNotificationPosted(StatusBarNotification statusBarNotification) { Intent intent = new Intent(); intent.putExtra("STATUS_BAR_NOTIFICATION",statusBarNotification); intent.setAction("com.example.NotificationPosted"); sendBroadcast(intent); } 但是当我这样做时,我得到以下错误: 01-05 01:50:14.333 19574-19673/com.example W/NotificationListenerService[NotificationListener]﹕ Error running onNotificationPosted java.lang.RuntimeException: Not allowed to write file descriptors here at android.os.Parcel.nativeAppendFrom(Native Method) at android.os.Parcel.appendFrom(Parcel.java:431) at android.os.Bundle.writeToParcel(Bundle.java:1679) at android.os.Parcel.writeBundle(Parcel.java:636) at android.app.Notification.writeToParcel(Notification.java:962) at android.service.notification.StatusBarNotification.writeToParcel(StatusBarNotification.java:106) at android.os.Parcel.writeParcelable(Parcel.java:1285) at android.os.Parcel.writeValue(Parcel.java:1204) at android.os.Parcel.writeArrayMapInternal(Parcel.java:618) at android.os.Bundle.writeToParcel(Bundle.java:1692) […]