I am writing an android service to get the weather, and AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.my.weather" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="15" /> <uses-permission android:name="android.permission.INTERNET" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <service android:name=".WeatherService" android:exported="true" > </service> </application> </manifest>
Now I want another apk to start this service:
Intent service = new Intent(); service.setClassName("com.my.weather", "com.my.weather.WeatherService"); context.bindService(service, weatherServiceConnection, Context.BIND_AUTO_CREATE);
And I got an error message:
E/AndroidRuntime(14068): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.my.test/com.my.test.MainActivity}: java.lang.SecurityException: Not allowed to bind to service Intent { cmp=com.my.weather/.WeatherService }
How can I solve this problem?
Another apk uses the Messenger method to communicate with the meteorological service.
==================================================== ================================
Thanks everyone!
Now I am modifying my AndroidManifest.xml meteorological service:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.my.weather" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="15" /> <uses-permission android:name="android.permission.INTERNET" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <service android:name=".WeatherService" android:exported="true" android:process=":remote" > <intent-filter> <action android:name="com.my.weather.WeatherService"></action> </intent-filter> </service> </application> </manifest>
And I use this method to run:
Intent service = new Intent("com.my.weather.WeatherService"); context.bindService(service, weatherServiceConnection, Context.BIND_AUTO_CREATE);
Then I got a warning message:
W/ActivityManager(131): Unable to start service Intent { act=com.my.weather.WeatherService }: not found