Utworzyłem usługę, która jest powiązana przez inne aplikacje za pośrednictwem AIDL i dodaję ją do manifestu w następujący sposób:
<service android:name=".MyService">
<intent-filter>
<action android:name="org.example.android.myservicedemo.IService" />
</intent-filter>
</service>
gdzie IService to interfejs AIDL.
W ten sposób Eclipse pokaż mi ostrzeżenie Wyeksportowana usługa nie wymaga pozwolenia . Jeśli usunę intent-filter
, ostrzeżenie zniknie, ale oczywiście aplikacje nie mogą połączyć się z usługą.
Co oznacza to ostrzeżenie?
android:permission
atrybutu swojej <service>
deklaracji. Lub po prostu zignoruj ostrzeżenie - co ma robić usługa? Jeśli nie przeszkadza Ci utrzymywanie usługi „wewnętrznej”, o wiele łatwiej jest po prostu ustawić ją android:exported="false"
na<service>
Service
i wywoływać dowolną metodę, która jest ujawniona przez interfejs AIDL.