我有一个活动正在监听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/

10-12 00:30
查看更多