android service exported attribute?
I am quite new to the android platform. I want to export my 开发者_Go百科service to be publicly used. I find something on developer doc
android:exported
Whether or not components of other applications can invoke the service or interact with it — "true" if they can, and "false" if not. When the value is "false", only components of the same application or applications with the same user ID can start the service or bind to it.
but I don't understand it Can anyone show me a brief example of how to use it?
The purpose of the "exported" is to let other apps have access to a service.
For example, \android-sdk-windows\samples\android-8\SampleSyncAdapter\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>
<service
android:name=".syncadapter.SyncService"
android:exported="true">
<intent-filter>
<action
android:name="android.content.SyncAdapter" />
</intent-filter>
<meta-data
android:name="android.content.SyncAdapter"
android:resource="@xml/syncadapter" />
<meta-data
android:name="android.provider.CONTACTS_STRUCTURE"
android:resource="@xml/contacts" />
</service>
The source code that matches with these services is then found in your samples folder at
\android-sdk-windows\samples\android-8\SampleSyncAdapter\src\com\example\android\samplesync\authenticator\AuthenticationService.java
and
\android-sdk-windows\samples\android-8\SampleSyncAdapter\src\com\example\android\samplesync\syncadapter\SyncService.java
An example of using this might be located at...
\android-sdk-windows\samples\android-8\SampleSyncAdapter\src\com\example\android\samplesync\client\NetworkUtilities.java (3 hits)
Line 63: "https://samplesyncadapter.appspot.com";
Line 238: // Succesfully connected to the samplesyncadapter server and
Line 287: // Succesfully connected to the samplesyncadapter server and
You can will find that the sample applications SampleSyncAdapter, CubeLiveWallpaper, and VoiceRecognitionService (new in level 8) all export services for public use. You can look through your sdk's samples/ directory. Eclipse can create a new project using the existing samples (from the File/New/Android Project dialog).
精彩评论