android - 在 Broadcastreceiver 中检测 USB - 我错过了什么?

标签 android android-manifest broadcastreceiver

我的代码遗漏了一些东西,需要你的眼睛来定位。

我创建了一个 USBOnReciever 广播接收器。

public class USBOnReceiver extends BroadcastReceiver
{ 
@Override
public void onReceive(Context context, Intent intent) 
{
    Toast.makeText(context,  "Phone was connected to power" ,Toast.LENGTH_LONG).show();
    Log.d("tag", "Phone was connected to power");
} 
} 

我的 list 是:

<application>
    <receiver android:name=".USBOnReceiver" android:enabled="true"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.UMS_CONNECTED" />
        </intent-filter>
    </receiver>

</application>

这是我卡住的时候。 连接 USB 时似乎没有任何反应(我也尝试使用 power_connected)。

我知道我可以通过 list 或编程方式注册 BR。但不确定如何实现。

在我的 Activity 中我添加了

        USBOnReceiver myReceiver = new USBOnReceiver();

但它看起来如此不连贯且毫无用处:-/

在此感谢您的关注。

最佳答案

您的代码看起来很完整。如果我没错的话, 您遇到的唯一问题是:您在 list 中写了 reciever 而不是 receiver。 所以 BroadcastReceiver 从未正确注册。

进入代码注册的话题:

是的,这是可能的。只需创建接收器的一个实例 并使用 Context.registerReceiver(mReceiver, new IntentFilter(...))。

如果您已在 list 中注册,则无需这样做。 BroadcastReceivers 仅在执行 onReceive() 时有效。所以 系统创建实例并在之后杀死它们。

关于android - 在 Broadcastreceiver 中检测 USB - 我错过了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6486339/

相关文章:

android - 设备重启后,我的应用接收 BOOT_COMPLETED 广播比其他应用慢/晚?

android - Oreo BroadcastReceiver SMS Received 不工作

android - 如何组织类似的适配器?

从 Activity 标签中选择的 Android 应用程序图标名称比从应用程序标签中选择的

当前网络流量的android事件?

android - 如何将通知设置 Activity 添加到系统设置

android - 无法启动 Android 虚拟 AVD 设备

java - 方法...必须覆盖父类(super class)方法(最新 SDK)

android - 渲染期间引发异常 : java. lang.System.arraycopy

android - 应用于文本的方法 canvas.rotate(90) 对于 android 4.0-4.1 已损坏