나는 권한 메커니즘을 사용하여 호출자에 대한 제한을 적용하는 두 개의 앱을 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" ... />
보호를 받았다. 벨 값 : 정상, 서명 및 위험. 감사.
증상에 대해보다 정확한 증상을 알려주십시오. – CommonsWare