2013-02-19 5 views
0

У меня есть приложение A, оно содержит действия, услуги и приемники. Мне нужно изменить свой код, чтобы любое будущее приложение (например: B и C) могло запускать службы, расположенные в приложении A, и, возможно, получать доступ к файлам своих настроек.Компоненты общего доступа

Однако я хочу ограничить доступ к компонентам приложения А приложениям, разработанным мной только.

Может ли кто-нибудь указать мне в правильном направлении?

Спасибо!

+1

Вам необходимо внедрить [Content Provider] (http://developer.android.com/guide/topics/providers/content-provider-basics.html) и добавить разрешения, которые вам нравятся, для которых приложение имеет доступ к чему. –

+0

ContentProviders не решает мою проблему, мне нужно обмениваться компонентами (Activities, Services), а не базами данных. – Shatazone

+0

Если вы говорите об использовании тех же классов кода в разных приложениях, вы можете создать общую библиотеку и импортировать ее как внешний JAR для других приложений. –

ответ

0

Я просто нашел решение:

, используя тот же андроид: sharedUserId на обоих приложениях будет делать именно то, что мне было нужно.

0

Это может быть сделано с разрешениями для компонентов.

Приложение также может защитить свои собственные компоненты (виды деятельности, услуги, широковещательные приемники, а также контент-провайдеров) с разрешениями. Он может использовать любые разрешения, определенные Android (перечисленные в android.Manifest.permission) или объявленные другими приложениями . Или он может определить свой собственный. Новое разрешение объявляется с элементом.

Для примера см. this doc.

+0

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

+0

У вас есть информация, которая вызвала ваш компонент? – Jin35

Смежные вопросы