Intereting Posts
Застрял на экране эмулятора в Eclipse с Android Development? Android C2DM: Дублировать сообщение на одно и то же устройство и приложение Как использовать getSystemService в классе без активности? Получение списка всех Windows на Android При рисовании вне рамки клипа просмотра с Android: как я могу предотвратить недоразвитие представлений от рисования поверх моего пользовательского представления? Action Bar Шерлок SearchView не расширяется по щелчку PhoneGap / Cordova Android получит размер экрана после onDeviceReady Libgdx странное моделирование – ошибка глубины? Когда вызывается вызов ServiceConnection.onServiceDisconnected ()? Андроид, включающий Wi-Fi программно Android 2.2 Webview вызывает API OpenGL ES без текущего контекста (регистрируется один раз в потоке) Значок пользовательского маркера Android Альтернатива AbsoluteLayout в Android? Как включить Jack (набор компиляторов Java для Android) в студии Android Как настроить свойство android layout_alignParentBottom на кнопку динамически

Является ли андроид: exported = "true" действительно необходимым для службы проверки подлинности?

Обычно есть две службы, связанные с внедрением аутентификатора Android – службы аутентификации для возврата аутентификатора и службы синхронизации, которая обеспечивает адаптер синхронизации. Этот вопрос касается службы аутентификации, хотя в большинстве примеров обеим службам присваивается атрибут android:exported="true" в AndroidManifest.xml , например:

 <service android:name=".authenticator.AuthenticationService" android:exported="true"> <intent-filter> <action android:name="android.accounts.AccountAuthenticator" /> </intent-filter> <meta-data android:name="android.accounts.AccountAuthenticator" android:resource="@xml/authenticator" /> </service> 

Удаление атрибута из службы проверки подлинности, похоже, не имеет эффекта (проверено Froyo, Gingerbread) – код auth продолжает работать нормально – так ли нужен флаг?

Solutions Collecting From Web of "Является ли андроид: exported = "true" действительно необходимым для службы проверки подлинности?"

Хорошо, чтобы ответить на это сам, прочитав документы, в документации для exported атрибута написано:

Значение по умолчанию зависит от того, содержит ли служба фильтры намерений. Отсутствие каких-либо фильтров означает, что его можно вызвать только путем указания его точного имени класса. Это означает, что служба предназначена только для внутреннего использования приложения (так как другие не знают имя класса). Поэтому в этом случае значением по умолчанию является «false». С другой стороны, наличие по меньшей мере одного фильтра подразумевает, что служба предназначена для внешнего использования, поэтому значение по умолчанию «true».

У всех служб аутентификации есть фильтр намерений – документы для AbstractAccountAuthenticator говорят:

Чтобы быть аутентификатором, нужно … написать службу, которая возвращает результат getIBinder () в onBind (android.content.Intent) службы при вызове с намерением с действием ACTION_AUTHENTICATOR_INTENT.

Для этого требуется фильтр намерений, поэтому значение по умолчанию, экспортируемое для службы, true . Поэтому ответ на этот вопрос: «Нет, атрибут не нужен, потому что он по умолчанию по умолчанию» .