1

我有一个监听 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);
        }
    }
4

1 回答 1

1

我认为您没有足够的信息来确定 USB_DEVICE_ATTACHED 广播是由于您的用户插入了某些东西,还是设备自行重启。

如果用户在一定时间内(1 分钟或 10 分钟或其他任何时间)没有执行任何操作,我会做的是Activity在任何情况下启动并自行关闭。Activity

于 2017-08-22T11:17:01.757 回答