2017-08-22 288 views
1

我有一个活动正在侦听USB_DEVICE_ATTACHED广播意图,当用户插入我的USB设备并选择我们的应用程序时启动。我的问题是android主机设备每天重新启动一次(通常在凌晨4点左右),此时连接的USB_DEVICE_ATTACHED意图也会自行启动。重新启动后阻止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); 
     } 
    } 

回答

1

我不认为你有足够的信息,以确定是否USB_DEVICE_ATTACHED广播是由于您的用户堵漏的东西,或者设备重启本身。

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

+0

是的,我在想这些方面。好吧! –

+0

嘿,务实的解决方案仍然是解决方案! :-) –

相关问题