Получить личность вызывающего абонента в onBind() службы в Android
В onBind()
метод службы Я хотел бы проверить, есть ли у вызывающего абонента конкретное разрешение. Для этого мне нужно найти личность звонящего.
Я ожидал, что следующий код вернет имя пакета вызывающей стороны, но вместо этого я получу имя пакета службы. Что я делаю неправильно?
Binder.getCallingUid()
String pkg = getPackageManager().getNameForUid(uid);
1 ответ
Там нет необходимости делать этот тип операции. Если вы хотите защитить связывание, запуск или остановку вашего Service
затем добавьте android:permission
атрибут вашего декларации декларации о Service
:
<service android:name=".MyService"
android:permission="com.example.myapp.permission.SERVICE_USER" >
<intent-filter>
...
</intent-filter>
</service>
Система автоматически гарантирует, что любое приложение, пытающееся использовать ваш сервис, имеет указанное разрешение. Вы используете только API принудительного / проверочного разрешения внутри открытых вызовов связывателя. Вы можете найти эту статью полезной: http://po.st/d6eTXj.