我的代码遗漏了一些东西,需要你的眼睛来定位。
我创建了一个 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");
}
}
我的清单是:
<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)。
我了解我可以通过清单或以编程方式注册 BR。但不确定如何实施。
在我的活动中我添加了
USBOnReceiver myReceiver = new USBOnReceiver();
但它看起来是如此脱节和无用:-/
在这里我会欣赏你的眼睛。
你的代码看起来很完整。如果我没错的话,
您遇到的唯一问题是:您在清单中写入了接收器而不是接收器。
所以 BroadcastReceiver 从未正确注册。
到代码中注册的主题:
是的,那是可能的。只需创建一个接收器实例
并使用 Context.registerReceiver(mReceiver, new IntentFilter(...))。
如果您已在清单中注册,则无需这样做。
BroadcastReceivers 仅在执行 onReceive() 时有效。所以
系统创建实例并随后杀死它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)