簡體   English   中英

帶有Eclair 2.1的IntentService的權限

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM