2011-08-30 5 views
0

나는 권한 메커니즘을 사용하여 호출자에 대한 제한을 적용하는 두 개의 앱을 Android에서 작성하고 있습니다.Eclair 2.1의 IntentService에 대한 권한

Froyo 2.2 이상에서는 작동하지만 Eclair 2.1에서는 정상적으로 작동하지 않습니다.

첫 번째 앱 (호출자)이 매니페스트 <uses-permission ... />에 있고 두 번째 앱 (호출 됨)이 <permission .... />이라는 새 권한을 정의합니다.

누군가 Eclair 2.1과 동일한 문제가 있습니까?

저는 2.1 에뮬레이터 (2.1-update1 및 2.1update1, google api)에서 테스트하고 있습니다.

이 로그 캣에서 오류입니다 :

W/ActivityManager( 52): Permission Denial: Accessing service ComponentInfo{xy.android.myapp.pkg2/xy.android.myapp.pkg2.Service} from pid=52, uid=1000 requires xy.android.myapp.ACCESS_SERVICE 
W/System.err( 499): java.lang.SecurityException: Not allowed to start service Intent { act=xy.android.myapp.pkg2.REMOTE_LIST cmp=xy.android.myapp.pkg2/.Service (has extras) } without permission xy.android.myapp.ACCESS_SERVICE 
W/System.err( 499): at android.app.ApplicationContext.startService(ApplicationContext.java:765) 
W/System.err( 499): at android.content.ContextWrapper.startService(ContextWrapper.java:326) 
W/System.err( 499): at xy.android.myapp.pkg1.MainActivity$6.run(MainActivity.java:711) 
W/System.err( 499): at java.lang.Thread.run(Thread.java:1096) 

내가 프로 요에 달리 APK를 설치하는 경우, 새 권한에 대해이 기록되지 않습니다. 응용 프로그램의

매니페스트는 다음과 같습니다

Pkg1의 (발신자)

<permission android:name="xy.android.myapp.ACCESS_SERVICE" 
      android:label="@string/label" 
      android:description="@string/desc" 
      android:protectionLevel="signature" /> 

그리고 서비스 정의에

<uses-permission android:name="xy.android.myapp.ACCESS_SERVICE" /> 

Pkg2의 : 나는했습니다

<service ... android:permission="xy.android.myapp.ACCESS_SERVICE" ... /> 

보호를 받았다. 벨 값 : 정상, 서명 및 위험. 감사.

+0

증상에 대해보다 정확한 증상을 알려주십시오. – CommonsWare

답변

0

나는 이것에 대해 비틀 거리다. 사용 권한을 선언 한 응용 프로그램은 사용 권한을 설치하기 전에 설치해야합니다. 그렇지 않으면 설정에 올바른 사용 권한이 표시 되더라도 예외가 발생합니다.