我有一个活动正在监听USB_DEVICE_ATTACHED广播意图,该意图在用户插入我的USB设备并选择我们的应用程序时启动。我的问题是android主机设备每天(通常是凌晨4点左右)重启一次,这时连接的USB_DEVICE_ATTACHED意图也会自行触发。
在这种情况下,我绝对不想启动我的活动,因为它不知道如何关闭自身。如何防止这种情况发生?我尝试使用PowerManager.isScreenOn()布尔值不启动我的活动(目标是API 17),但它认为屏幕确实处于打开状态。
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) {
if (powerManager.isInteractive()) {
startActivity(intent);
}
}
else{
//noinspection deprecation
if (powerManager.isScreenOn()) {
startActivity(intent);
}
}
最佳答案
我认为您没有足够的信息来确定USB_DEVICE_ATTACHED广播是由于用户插入了某些东西,还是设备自行重启了。
我要做的是在任何情况下都启动Activity
,并且如果用户在特定时间段(1分钟或10分钟或任何时间)内未执行任何操作,则关闭Activity
自身。
关于android - 重新启动后阻止USB_DEVICE_ATTACHED启动应用程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45814702/