Ответ 1
У меня такое же исключение на Galaxy Nexus, версия которого - Android 4.2.
Мне удалось запустить службу с помощью следующей команды.
am startservice --user 0 -a <action>
Я отправляю следующую команду на планшет Nexus 7:
adb.exe -s 015d2109567231a0f shell am startservice -n com.packagename/.ExServiceName --ei port 59777
и получение:
Starting service: Intent { cmp=com.packagename/.ExServiceName (has extras) }
java.lang.SecurityException: Caller uid=2000 is not privileged to communicate with user=-2
at android.os.Parcel.readException(Parcel.java:1425)
at android.os.Parcel.readException(Parcel.java:1379)
at android.app.ActivityManagerProxy.startService(ActivityManagerNative.java:2648)
at com.android.commands.am.Am.runStartService(Am.java:415)
at com.android.commands.am.Am.run(Am.java:111)
at com.android.commands.am.Am.main(Am.java:82)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235)
at dalvik.system.NativeStart.main(Native Method)
Текущая информация о планшете:
Model number: Nexus 7
Android version: 4.2
Kernel version: 3.1.10-g22b4fcd
Сервисный манифест:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.packagename"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET"/>
<application android:label="@string/app_name"
android:icon="@drawable/ic_launcher"
android:theme="@style/AppTheme">
<service android:name=".ExServiceName" android:exported="true"></service>
</application>
</manifest>
Я развиваюсь под Windows 7 x64
Не могли бы вы рассказать мне, как заставить службу успешно принять намерение без каких-либо исключений?
Спасибо,
Konrad
У меня такое же исключение на Galaxy Nexus, версия которого - Android 4.2.
Мне удалось запустить службу с помощью следующей команды.
am startservice --user 0 -a <action>
После многого поиска в Интернете и очень полезного сообщения Коджи Хисано мне удалось получить системную панель, используя:
am startservice --user 0 -n com.android.systemui/.SystemUIService
Если была использована опция -a, я получал сообщение:
Ошибка: не найден; служба не запускалась.
Вы можете запустить службу на корневом телефоне также с помощью
adb.exe -s 015d2109567231a0f shell su -c "am startservice -n com.packagename/.ExServiceName --ei port 59777"
Что для меня работало:
Откройте терминал Android Studio, а затем
adb shell
run-as com.app_package_name
am startservice --user 0 -n com.app_package_name/.service_package_name.ServiceName