2011-08-30 17 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與谷歌API)。

這是錯誤的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" /> 

PKG2

<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" ... /> 

我已經經過保護測試速度值:正常,簽名和危險。謝謝。

+0

請提供您正在經歷的更精確的症狀。 – CommonsWare

回答

0

我剛剛偶然發現了這個。聲明權限的應用程序需要在使用它的應用程序之前安裝,否則即使權限顯示在「設置」上,它也會引發異常。