[英]Permission on IntentService with Eclair 2.1
我正在Android上編寫兩個應用程序,該應用程序使用權限機制對呼叫者實施限制。
它們可以在Froyo 2.2或更高版本上完美運行,但不能在Eclair 2.1上運行。
第一個應用程序(調用者)在清單<uses-permission ... />
,第二個應用程序(稱為)使用<permission .... />
定義新的許可。
有人對Eclair 2.1遇到同樣的麻煩嗎?
我正在用於僅2.1模擬器(帶有Google api的2.1-update1和2.1update1)進行測試。
這是來自logcat的錯誤:
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時,與在Froyo上不同,沒有關於新權限的日志。
應用清單顯示:
Pkg1(呼叫者)
<uses-permission android:name="xy.android.myapp.ACCESS_SERVICE" />
包2
<permission android:name="xy.android.myapp.ACCESS_SERVICE"
android:label="@string/label"
android:description="@string/desc"
android:protectionLevel="signature" />
並在服務定義中:
<service ... android:permission="xy.android.myapp.ACCESS_SERVICE" ... />
我已經測試了protectionLevel值:正常,簽名和危險。 謝謝。
我自己偶然發現了這個。 聲明許可的應用需要在使用該許可的應用之前安裝,否則即使設置中顯示了正確的許可,該應用也會引發異常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.