2010-08-13 3 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.

Ваша проблема заключается в том, что вы пытаетесь предоставить разрешение Service в неправильном месте в файле AndroidManifest.xml.

android:permission attribute of a Service указывает разрешение, которое должен иметь объект для использования услуги, а не разрешение, предоставленное Service.

grant permissions to all components your application Вы на верхнем уровне 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

как serice может иметь более одного разрешения? – hariszaman

+6

Что делать, если вам нужно указать, что объект имеет более одного разрешения на использование услуги? – zundi