У меня есть очень простое приложение - оно включает и выключает Bluetooth в зависимости от того, подключено ли оно.
Приложение сейчас также очень простое с точки зрения пользовательского интерфейса - там есть 1 кнопка, которая позволяет включать и выключать Bluetooth, если вы хотите.
У меня на самом деле это работает, и я выяснил, как обновить кнопку, но я хотел бы обновить свой пользовательский интерфейс, только если приложение находится на переднем плане - так что, если я подключу свой телефон, и я НЕ в моем приложении, я не хочу, чтобы мое приложение всплыло и обновило пользовательский интерфейс - я хочу, чтобы пользовательский интерфейс менялся только в том случае, если приложение было открыто, когда я подключил телефон.
Я попробовал следующий код, и он действительно находит приложение в списке запущенных приложений, но он открывает приложение, независимо от того, что - то есть, оно откроет приложение и обновит мой пользовательский интерфейс, было ли оно открыто раньше или нет.
ActivityManager activityManager = (ActivityManager) context.getSystemService( Context.ACTIVITY_SERVICE );
List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
for(RunningAppProcessInfo appProcess : appProcesses){
if(appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND){
Log.i("Foreground App", appProcess.processName);
if(appProcess.processName.equals("vermel.BluetoothOn")) {
//update UI
}
}
}
Что я делаю не так? Пожалуйста, имейте в виду, что я новичок в Java и Android, и буду очень признателен за подробное объяснение, а не за ссылку на документацию по разработке для Android;)
Спасибо за чтение!