Ich habe einen Dienst erstellt, der über AIDL an andere Anwendungen gebunden ist, und füge ihn dem Manifest wie folgt hinzu:
<service android:name=".MyService">
<intent-filter>
<action android:name="org.example.android.myservicedemo.IService" />
</intent-filter>
</service>
Dabei ist IService die AIDL-Schnittstelle.
Auf diese Weise zeigt Eclipse mir die Warnung Exportierter Dienst erfordert keine Berechtigung . Wenn ich das entferne intent-filter
, verschwindet die Warnung, aber die Anwendungen können sich offensichtlich nicht an den Dienst binden.
Was bedeutet diese Warnung?
android:permission
Attribut Ihrer <service>
Deklaration. Oder ignorieren Sie einfach die Warnung - was soll der Dienst tun? Wenn Sie damit einverstanden sind, den Dienst "intern" zu halten, ist es viel einfacher, ihn einfach android:exported="false"
auf Ihren<service>
Service
Dies bedeutet, dass andere (willkürliche) Anwendungen, die der Benutzer auf seinem Telefon hat, sich an Ihre binden und eine beliebige Methode aufrufen können, die über Ihre AIDL-Schnittstelle verfügbar gemacht wird.