2010-08-13 78 views
8

我有一個服務,既下載文件並保存它,似乎我只能指定一個權限。Android服務可以有多個權限?

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

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

我兩者都需要。

回答

19

Android Service可以擁有多個權限,但權限是在應用程序級授予的,而不是在Service級授予。

您的問題是,您正嘗試在AndroidManifest.xml文件的錯誤位置授予您的Service權限。

android:permission attribute of a Service指定實體必須具有使用服務的權限,而不是授予Service的權限。

grant permissions to all components your applicationAndroidManifest.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

一個貢獻莫過於如何能有一個以上的許可嗎? – hariszaman 2014-02-07 22:54:53

+6

如果您需要指定實體具有多個使用該服務的權限,該怎麼辦? – zundi 2015-08-12 14:31:05