Есть ли в Android возможность узнать, какое пользовательское приложение использует какую системную службу?

Есть ли в android или ndk какое-либо положение, чтобы узнать, какое пользовательское приложение использует какую системную службу? ИЛИ другим способом, используя pid: -

Предположим, у меня есть приложение, которое использует микрофон, микрофон открывается системной службой (с именем media serv). Мне удается получить pid вышеуказанной службы (media serv). Теперь я хочу знать, какое пользовательское приложение использует pid вышеуказанного сервиса (медиа-сервера).


person chiv    schedule 24.08.2012    source источник


Ответы (1)


Если вы являетесь разработчиком системной службы, например, путем создания собственного форка ОС Android, должны быть способы сделать это с помощью протокола Binder IPC. Приложения SDK, которые реализуют службу, использующую шаблон привязки, могут узнать, кто им звонит, посредством вызовов их объекта Binder. Если приложение SDK имеет возможность получить эту информацию, можно предположить, что системная служба может получить ту же информацию от своего эквивалента C/C++ Binder.

Если вы не являетесь разработчиком системной службы, то нет, связь между приложениями и системными службами является частной для этих процессов.

person CommonsWare    schedule 24.08.2012
comment
@CommomsWare, сэр, я не разработчик, на самом деле я пытался узнать, какое приложение моего телефона использует мой микрофон, я также нашел другой способ, который написан здесь stackoverflow.com/questions/12104284/ вы можете сказать об этом любой из них? - person chiv; 24.08.2012
comment
@chiv: мне неизвестны какие-либо средства для приложения SDK, чтобы узнать, использует ли в настоящее время микрофон другое приложение SDK. - person CommonsWare; 24.08.2012
comment
@CommomsWare, сэр, как мы можем запустить dumpsys в Android 2.3.3, поскольку я получаю отказ в разрешении на какое-то разрешение даже после добавления разрешения, такого как android.permission.DUMP - person chiv; 24.08.2012