2014-10-14 2 views
1

У меня есть одно приложение, которое работает как служба и широковещательный приемник с правами администратора root и устройства. Мне нужно это приложение, чтобы иметь возможность контролировать пользовательский интерфейс для любого другого приложения, которое может работать. Например, мне может потребоваться скрыть навигационную панель системы или переопределить домашнюю кнопку, пока другие приложения работают на переднем плане. Это песочница пользователя.Контрольный интерфейс одного приложения для Android от другого

Может ли кто-нибудь предложить, как я могу это сделать? Скрывать навигационную панель в вашем собственном приложении легко, и, конечно, переопределяющие кнопки не имеют большого значения, но мне нужно, чтобы одно приложение могло делать это для других приложений.

Я рассматриваю, может ли пользовательский интерфейс Automator помочь.

Мои приложения (песочница и другие приложения, которые будут запущены) являются моими, и все они будут иметь доступ root. Я также смогу создать собственную пользовательскую версию ОС Android на каждом устройстве, если мне это нужно.

-Спасибо

ответ

0

Хорошо это должно быть сделано в два этапа,

  1. Создать трансляцию от службы
  2. Зарегистрируйте широковещательный приемник в приложении UI, чтобы слушать трансляции

В вашей службе это сделать

Intent intent = new Intent(); 
intent.setAction(BROADCAST_ACTION); 
sendBroadcast(Intent); 

В вашем mainActivity используйте

registerReceiver(<receiver instance>, BROADCAST_ACTION) 

в OnStart или OnCreate метод.

Это позволит настроить вашу основную функцию для прослушивания широковещательных передач, а затем вам нужно определить свой широковещательный приемник, который находится в вышеуказанном вызове.

BroadcastReceiver receiver; 
receiver = new BroadcastReceiver() { 
    public void onReceive(Context c, Intent i) { 
     //Modify the UI, in this case hide the dialog box. 
    } 
} 
+0

Привет, если я возьму этот метод, то весь код UI скрытие/песочницы будет в главном приложении, и поэтому он должен быть в каждом приложении, которое должно быть в песочнице, что было бы дублирование коды , Я хочу, чтобы служба модифицировала пользовательский интерфейс, так как тот же сервис в идеале должен работать на всех устройствах независимо от того, какое приложение мы выбрали для его использования для использования пользователем. – elliptic1

+0

извинения, я пропустил слово «любой» в вопросе! Мне нужно подумать об этом –