Может ли служба Android иметь несколько разрешений? - PullRequest
9 голосов
/ 13 августа 2010

У меня есть служба, которая загружает и сохраняет файл, и, кажется, я могу указать только одно разрешение.

<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>

Мне нужны оба.

1 Ответ

21 голосов
/ 13 августа 2010

Android Service может иметь несколько разрешений, но разрешения предоставляются на уровне приложения, а не на уровне Service.

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

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

Вы предоставляете разрешения всем компонентам вашего приложения на верхнем уровне вашего 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>
...