broadcastreceiver 相关问题

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

警报广播接收器永远不会被调用

正如标题所说,我的广播接收器从未被调用过。 我束手无策,我知道有 30.. 千篇关于此的帖子,我发誓我已经阅读了其中的大部分,并尝试了十几件事......

回答 1 投票 0

在 Android 13 (MIUI 14) 上,当应用程序未通过带有 USER_PRESENT 的 BroadcastReceiver 运行时,无法启动前台服务

如果应用程序尚未运行,我无法让我的接收器工作(如果它正在运行,则可以正常工作) 我也有同样的问题,意图 USER_UNLOCKED 我设法让接收器工作,当...

回答 1 投票 0

Android java中如何接收蓝牙耳机播放暂停事件

如何在我的 VOIP 应用程序中接收蓝牙颈带播放暂停事件? 我在应用程序中实现了下面的广播接收器。 清单文件 如何在我的 VOIP 应用程序中接收蓝牙颈带播放暂停事件? 我在应用程序中实现了下面的广播接收器。 清单文件 <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <receiver android:name=".MediaButtonReceiver" android:exported="true" android:priority="10000" > <intent-filter > <action android:name="android.intent.action.MEDIA_BUTTON" /> </intent-filter> </receiver> public class MediaButtonReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { android.util.Log.d("TAG", "Bluetooth onPlay: "+intent.getAction()); if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) { KeyEvent event = intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); if (event != null && event.getAction() == KeyEvent.ACTION_DOWN) { int keyCode = event.getKeyCode(); if (keyCode == KeyEvent.KEYCODE_MEDIA_PLAY || keyCode == KeyEvent.KEYCODE_MEDIA_PAUSE) { // Handle play/pause event } } } } } 并像这样注册到调用活动 MediaButtonReceiver r = new MediaButtonReceiver(); registerReceiver(r, new IntentFilter(Intent.ACTION_MEDIA_BUTTON)); 并且还在应用程序中的广播接收器下面实现了 public class BluetoothHeadsetReceiver extends BroadcastReceiver implements BluetoothProfile.ServiceListener { private static final String TAG = "BluetoothHeadsetReceiver"; private BluetoothHeadset bluetoothHeadset; @Override public void onServiceConnected(int profile, BluetoothProfile proxy) { if (profile == BluetoothProfile.HEADSET) { bluetoothHeadset = (BluetoothHeadset) proxy; Log.d(TAG, "Bluetooth Headset connected"); } } @Override public void onServiceDisconnected(int profile) { if (profile == BluetoothProfile.HEADSET) { bluetoothHeadset = null; Log.d(TAG, "Bluetooth Headset disconnected"); } } @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); Log.d(TAG, "Bluetooth Headset onReceive : "+action); if (BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED.equals(action)) { int state = intent.getIntExtra(BluetoothHeadset.EXTRA_STATE, BluetoothHeadset.STATE_DISCONNECTED); if (state == BluetoothHeadset.STATE_CONNECTED) { Log.d(TAG, "Bluetooth Headset connected"); } else if (state == BluetoothHeadset.STATE_DISCONNECTED) { Log.d(TAG, "Bluetooth Headset disconnected"); } } else if (BluetoothHeadset.ACTION_AUDIO_STATE_CHANGED.equals(action)) { int state = intent.getIntExtra(BluetoothHeadset.EXTRA_STATE, BluetoothHeadset.STATE_AUDIO_DISCONNECTED); if (state == BluetoothHeadset.STATE_AUDIO_CONNECTED) { Log.d(TAG, "Bluetooth Headset audio connected"); // Handle button click events or other actions here } else if (state == BluetoothHeadset.STATE_AUDIO_DISCONNECTED) { Log.d(TAG, "Bluetooth Headset audio disconnected"); } }else{ Log.d(TAG, "Bluetooth Headset onReceive else : "); } } public void register(Context context) { BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if (bluetoothAdapter != null) { bluetoothAdapter.getProfileProxy(context, this, BluetoothProfile.HEADSET); IntentFilter filter = new IntentFilter(); filter.addAction(BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED); filter.addAction(BluetoothHeadset.ACTION_AUDIO_STATE_CHANGED); context.registerReceiver(this, filter); } else { Log.e(TAG, "Bluetooth is not supported on this device"); } } public void unregister(Context context) { context.unregisterReceiver(this); if (bluetoothHeadset != null) { BluetoothAdapter.getDefaultAdapter().closeProfileProxy(BluetoothProfile.HEADSET, bluetoothHeadset); } } } 在调用 Activity OnCreate() 方法中注册以下代码。 MediaButtonReceiver r = new MediaButtonReceiver(); registerReceiver(r, new IntentFilter(Intent.ACTION_MEDIA_BUTTON)); if(gc.hasBTPermission(this, ConstantStrings.BLUETOOTH_PERMISSION)) { if (BluetoothManager.getInstance().isBluetoothHeadsetAvailable()) { headsetReceiver = new BluetoothHeadsetReceiver(); headsetReceiver.register(this); BluetoothManager.getInstance().initBluetooth(); } } 但不接收蓝牙耳机播放,暂停点击事件仅接收应用程序中的蓝牙连接和断开事件。 我想基于蓝牙点击事件呼叫接受和挂断呼叫,但不在应用程序中接收事件。 蓝牙 HID 配置文件/服务始终由设备的底层操作系统处理。只需订阅操作系统的关键事件即可。在 Android 中,应用程序可以通过覆盖 MediaSession.Callback.onMediaButtonEvent(Intent) 来覆盖默认行为。在这种情况下,应用程序可以/需要自行处理所有 API 细节。

回答 1 投票 0

Android 蓝牙适配器未发出 ACTION_DISCOVERY_FINISHED

我有一个带有广播接收器设置的课程。接收器侦听以下操作: ACTION_FOUND ACTION_DISCOVERY_STARTED ACTION_DISCOVERY_FINISHED 找到并启动的操作将被...

回答 1 投票 0

地理围栏未触发我的反应本机实现

不确定这是否与我尝试在react-native模块中使用它有关,它或多或少是一样的——除非在ReactContextBaseJavaModule中初始化它是一个问题。 一切似乎...

回答 2 投票 0

为什么我的应用程序没有出现在打开txt文件的应用程序列表中?

我有一个文本阅读器应用程序,旨在当我单击文本文件打开它时接收来自 Android 系统的意图。但我的应用程序不在系统弹出的列表中。下面是我的代码:

回答 4 投票 0

Android 13 RECEIVER_EXPORTED 的解释正确吗?

这是谷歌对RECEIVER_EXPORTED、RECEIVER_NOT_EXPORTED的解释: 选择广播接收器是否应导出并可见 到设备上的其他应用程序。如果这个接收器是

回答 2 投票 0

如何安排日常习惯提醒

我正在使用 Firebase 创建一个习惯跟踪器,它可以选择记住一天中的一小时和一分钟来显示您创建的习惯的通知,问题是当您创建一个新习惯时...

回答 1 投票 0

Android BroadcastReceiver 无法接收短信广播

在我的Android应用程序中,我尝试使用BroadcastReceiver来收听传入的短信。 但由于某种原因,onReceive方法从未被调用,而且似乎连构造函数都没有运行......

回答 1 投票 0

在iptv服务中提供多频道服务

我本来应该开发一个 IPTV 系统,现在我必须弄清楚提供商如何同时从卫星广播多个频道 是不是像特殊接收那样由硬件管理...

回答 3 投票 0

如何在设备关闭前可靠地执行代码?

我想在手机关机时在sharedPreferences上存储一些数据。 我有一个用于关闭操作的广播接收器。问题是它有时有效,有时则无效。 ...

回答 1 投票 0

如何从广播接收器发送短信并检查其状态?

所以这是我的广播接收器 公共类 IncomingSMSListener 扩展 BroadcastReceiver { 私有静态最终字符串 SMS_EXTRA_NAME = "pdus"; @覆盖 公共无效onReceive(上下文上下文,...

回答 2 投票 0

ContextCompat.registerReceiver() - 什么被认为是“其他应用程序”的操作和“系统”的操作? (RECEIVER_EXPORTED/RECEIVER_NOT_EXPORTED 类)

因此,对于 Android 13,我们在使用以下方法时会收到以下警告: 上下文.registerReceiver( /* 接收器 = */ 接收器, /* 过滤器 = */ 意图过滤器, ) 接收器丢失

回答 1 投票 0

androidx.core.content.ContextCompat.RECEIVER_NOT_EXPORTED ContextCompat.registerReceiver [广播接收器]中的标志错误

val IntentFilter = IntentFilter(SmsRetriever.SMS_RETRIEVED_ACTION) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { ContextCompat.registerReceiver(

回答 1 投票 0

广播接收器未启动活动

在警报管理器应用程序中。 这是我的调度程序类: 类 AndroidAlarmScheduler(val context: Context) : AlarmScheduler { val AlarmManager = context.getSystemService(Context.ALARM_SERVICE)...

回答 1 投票 0

在Android 14/SDK 34中使用registerReceiver的正确方法是什么?

我在下面的代码中收到以下警告 对于为 IntentFilter 注册的不受保护的广播,hardwareScanBroadcastReceiver 缺少 RECEIVER_EXPORTED 或 RECEIVER_NOT_EXPORTED 标志

回答 1 投票 0

BroadcastReceiver 中 onReceive 方法中的意图 null 的额外内容

我有一个问题,我正在尝试设置 Android 通知,但是当我安排带有额外内容的意图时,额外内容会显示为空。 我创建意图和待处理意图的代码...

回答 1 投票 0

广播接收器错误,应该与 13 个广播一起使用

mainTest(ru.myitschool.lab23.InstrumentedTestLab46)中的错误: java.lang.RuntimeException: java.lang.Throwable: ' android.widget.TextView 和 view.getText() 的实例,带或不带

回答 1 投票 0

我的意图是空的,但我应该从我的广播接收器获得意图

我是android开发新手,我在这个问题上挣扎了一段时间,如果你能帮助我,那就太好了。 :) 我尝试构建一个可以在手机之间传输数据的应用程序(我...

回答 1 投票 0

Ionic Android 广播事件从 javascript 到本机

我正在尝试通过广播插件将事件从javascript(具体来说是角度)发送到android:https://github.com/bsorrentino/cordova-broadcaster 在用户界面中,我使用以下命令触发本机事件:

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.