2010-08-13 4 views
8

Ich habe einen Dienst, der sowohl eine Datei herunterlädt als auch speichert, und es scheint, ich kann nur eine Erlaubnis angeben.Kann ein Android-Dienst mehrere Berechtigungen haben?

<service android:enabled="true" 
      android:name=".DownloadService" android:permission="android.permission.INTERNET">    
</service> 

oder

<service android:enabled="true" 
      android:name=".DownloadService" android:permission="android.permission.WRITE_EXTERNAL_STORAGE">    
</service> 

Ich brauche beides.

Antwort

19

Ein Android Service kann mehrere Berechtigungen haben, aber Berechtigungen werden auf Anwendungsebene gewährt, nicht auf der Ebene Service.

Ihr Problem ist, dass Sie versuchen, Ihre Service an der falschen Stelle in der AndroidManifest.xml Datei zu erteilen.

Die gibt die Berechtigung an, über die eine Entität verfügen muss, um den Service zu verwenden, und keine Service erteilte Berechtigung.

Sie grant permissions to all components your application auf der obersten Ebene Ihres AndroidManifest.xml:

<manifest 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.yourdomain.yourapp" > 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

</manifest> 
+1

wie ein serice mehr als eine Berechtigung haben kann? – hariszaman

+6

Was ist, wenn Sie angeben müssen, dass eine Entität mehr als eine Berechtigung zur Verwendung des Service hat? – zundi