Можно ли добавить фильтр к поставщику контента, чтобы он принимал только запросы, исходящие от набора известных идентификаторов приложений? Например, если com.domain1.app1 и com.domain2.app2 — это два приложения, которым я доверяю, я бы хотел, чтобы они читали мои данные. Любое другое приложение следует держать снаружи. Что-то вроде фильтра намерений, но связанного с входящим запросом от других приложений.
Я знаю о том же ключе подписи, но это не то, что мне нужно.
Binder.getCallingUid()
внутри соответствующего методаContentProvider
(например,query()
) и посмотреть, дает ли он вам UID вызывающего. Если это так, вы можете использовать это сPackageManager
, чтобы определить идентификаторы приложений, связанные с этим UID. Но я забыл, работает лиBinder.getCallingUid()
внутриContentProvider
, поэтому я не уверен, что это сработает. - person CommonsWare   schedule 16.06.2016Binder.getCallingUid()
должно сработать. - person Marten   schedule 20.06.2016