1

우리의 안드로이드 시스템은 다중 사용자 기능을 지원합니다. 다른 응용 프로그램 (예 : app1, app2)에 startService (intent) 명령을 사용하여 서버를 시작하고 싶습니다. Google의 문서 당 https://source.android.com/devices/tech/admin/multiuser-apps.html에 있습니다. 내 서비스가 여러 사용자 안드로이드 시스템에서 한 인스턴스로만 실행되도록하려면 android : singleUser = "true"로 설정해야합니다. 내가 다른 응용 프로그램에 startservice 때, 나는 예외 아래에 있어요 = "true"를 수출하고 안드로이드에 의해 비활성화되었습니다 :여러 사용자 안드로이드 시스템에서 하나의 인스턴스로만 내 서비스를 실행하는 방법은 무엇입니까?

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 

는 안드로이드 보였다 단일 사용자가 = "true"로. android : singleUser = "true"를 추가하지 않으면 정상적으로 작동하지만 백그라운드에서 실행중인 서비스가 두 개 이상 존재합니다. 제 질문은 다른 애플리케이션의 startService (인 텐트)를 사용하여 하나의 인스턴스에서만 내 서비스를 실행하게하려면 어떻게해야합니까? 내 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> 

감사합니다 순전히.

답변

0

예, 앱을 시스템 앱으로 선언해야합니다. 또한 System UserHandler와 함께 bindServiceAsUser()를 사용하십시오.

1

링크 된 문서에 "현재 시스템 앱에서만이 기능을 사용할 수 있습니다"라는 메시지가 표시됩니다. 귀하의 제품에 적합하다면 앱을 시스템 앱으로 만드십시오.

0
  1. 메이크업 안드로이드 : 수출 및 안드로이드 : 사실
  2. 추가 권한 INTERACT_ACROSS_USERS에 단일 사용자는
  3. 당신이 응용 프로그램은 권한이 있는지 확인합니다. 앱 시스템 서명을해야합니다.