Наша система Android поддерживает несколько пользовательских функций. Я хочу запустить свой сервер из других приложений, например app1, app2, с помощью команды startService (intent). В документе Google по адресу https://source.android.com/devices/tech/admin/multiuser-apps.html. Мне нужно установить android: singleUser = "true", чтобы моя служба работала только в одном экземпляре в многопользовательской системе Android. но когда я запускаю обслуживание в другом приложении, у меня возникает исключение ниже:
Not allowed to start service Intent { act=com.xx.xxx.action.Start pkg=com.xx.xxx (has extras) } without permission not exported from uid 1000
казалось, что android: exported = "true" отключен android: singleUser = "true". если бы я не добавил android: singleUser = "true", он работал нормально, но в фоновом режиме работает несколько экземпляров моей службы. У меня вопрос: как сделать так, чтобы моя служба работала только в одном экземпляре с startService (intent) из других приложений? Мой Manifest.xml настроен следующим образом:
<application
android:name=".App"
android:label="@string/app_name"
android:directBootAware="true"
android:multiprocess="false"
android:persistent="true">
<service
android:name=".MyService"
android:singleUser="true"
android:exported="true"
android:permission="com.xx.permission.xx">
<intent-filter>
<action android:name="com.xx.xx.action.xx" />
</intent-filter>
</service>
</Application>
Огромное спасибо.