2

핸드 헬드에서 실행중인 WearableListenerService가 컴패니언 앱에서만 액세스 가능하게하고 싶습니다. 나는 사용자 지정 권한을 만드는 것이 경로를 취할 것이라고 생각하지만,이 접근 방식으로 문제가 발생하여 웨어러블을 핸드 헬드에 성공적으로 바인드 할 수 없으면 핸드 헬드에서 다음과 같은 예외가 발생합니다.컴패니언 시계 앱이 핸드 헬드의 착용 식 수신기 서비스에만 연결할 수 있도록 허용하는 방법은 무엇입니까?

Permission Denial: Accessing service ComponentInfo{com.mypackage.android/com.mypackage.android.androidwear.service.WearListenerService} from pid=4868, uid=10014 requires com.mypackage.android.WATCHAPP 
WearableService: bind: Permission denied connecting to ServiceRecord[com.mypackage.android.androidwear.service.WearListenerService, events=1, bound=false, [Event[79380002: onMessageReceived, event=requestId=16741, action=/start-activity, dataSize=26, source=31c5457d]]] 
               java.lang.SecurityException: Not allowed to bind to service Intent { act=com.google.android.gms.wearable.BIND_LISTENER cmp=com.mypackage.android/.androidwear.service.WearListenerService } 
                at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1437) 
                at android.app.ContextImpl.bindService(ContextImpl.java:1395) 
                at android.content.ContextWrapper.bindService(ContextWrapper.java:632) 
                at android.content.ContextWrapper.bindService(ContextWrapper.java:632) 
                at android.content.ContextWrapper.bindService(ContextWrapper.java:632) 
                at aeim.a(:com.google.android.gms:6693) 
                at aeim.a(:com.google.android.gms:1378) 
                at aeim.handleMessage(:com.google.android.gms:1295) 
                at android.os.Handler.dispatchMessage(Handler.java:102) 
                at android.os.Looper.loop(Looper.java:158) 
                at android.os.HandlerThread.run(HandlerThread.java:61) 

내가 처음에만 핸드 헬드 매니페스트에 다음 두 매니페스트에서, 여러 가지 방법으로 사용자 지정 권한을 정의하는 노력뿐만 아니라 다른 보호 수준, 정상, 서명, signatureOrSystem을 시도하고있다. 나는 심지어 dumpsys 명령을 실행하여 웨어러블에 대한 권한이 성공적으로 부여되었음을 확인했습니다.

declared permissions: 
    com.mypackage.android.WATCHAPP: prot=normal, INSTALLED 
requested permissions: 
    android.permission.WAKE_LOCK 
    com.mypackage.android.WATCHAPP 
install permissions: 
    com.mypackage.android.WATCHAPP: granted=true 
    android.permission.WAKE_LOCK: granted=true 

나는 그러나 나는 단지 내 응용 프로그램 내 서비스와 충분하지 않는 것 필터 방식을 시작할 수 있음을 시행하고자하는 내 서비스에 데이터 필터를 적용했습니다.

답변

1

시계 앱과 휴대용 앱은 전혀 입니다.은 서로 대화합니다. 모든 데이터 레이어 API는 먼저 Google Play 서비스 (예외의 com.google.android.gms 행)를 통과합니다. 먼저 Wear 측에서 핸드 헬드 측으로 이동합니다.

Google Play 서비스 앱이 사용자 정의 권한을 추가하지 않으므로 데이터 영역을 통한 통신을 보호하는 맞춤 권한을 추가 할 수 없습니다.

+0

덕분에, 그게 내가 스택 추적에서 수집 한 것입니다. 그렇다고해서 여전히 내 동반자 앱만 내 서비스와 상호 작용할 수 있도록 내 서비스를 제한하는 것이 가능하거나 오히려 가능하다는 의문이 제기됩니다. – RoLAN210