Saya membuat layanan yang terikat oleh aplikasi lain melalui AIDL, dan saya menambahkannya ke manifes sebagai berikut:
<service android:name=".MyService">
<intent-filter>
<action android:name="org.example.android.myservicedemo.IService" />
</intent-filter>
</service>
di mana IService adalah antarmuka AIDL.
Dengan cara ini, Eclipse menunjukkan kepada saya peringatan bahwa layanan yang Diekspor tidak memerlukan izin . Jika saya menghapus intent-filter
, peringatan hilang, tetapi jelas aplikasi tidak dapat mengikat ke layanan.
Apa artinya peringatan ini?
android
android-service
enzom83
sumber
sumber
Service
dan memanggil metode apa pun yang mereka sukai yang diekspos melalui antarmuka AIDL Anda.android:permission
atribut<service>
deklarasi Anda . Atau abaikan saja peringatan - layanan apa yang ingin dilakukan? Jika Anda baik-baik saja dengan menjaga layanan "internal" itu jauh lebih mudah hanya untuk mengaturandroid:exported="false"
pada Anda<service>
Jawaban:
Saya memiliki masalah yang sama ketika saya memperbarui SDK ke versi 20 . Saya menghapusnya dengan menambahkan android: properti yang diekspor
android:exported="false"
seperti:Lihat dokumen ini
sumber
Jika Anda ingin membatasi penggunaan aktivitas Anda untuk aplikasi Anda sendiri, maka Anda harus menambahkan
exported=false
pernyataan manifes aktivitas Anda.Jika Anda ingin mengizinkan aplikasi lain untuk menggunakannya (secara eksplisit melalui nama kelasnya atau, lebih baik, dengan menggunakan maksud dengan tipe data atau tindakan) maka Anda memiliki dua pilihan:
tools:ignore="ExportedActivity"
pernyataan manifes aktivitas Anda.-
Penalaran yang sama berlaku untuk layanan, dengan
tools:ignore="ExportedService"
dan penyedia kontentools:ignore="ExportedContentProvider"
.sumber
xmlns:tools="http://schemas.android.com/tools"
The prefix "tools" for attribute "tools:ignore" associated with an element type "activity" is not bound
dan tidak ada pilihan yang diberikan untuk memperbaikinya.Seperti yang dikatakan Jens , "Itu berarti aplikasi lain (sewenang-wenang) yang dimiliki pengguna di teleponnya dapat mengikat ke Layanan Anda dan memanggil metode apa pun yang mereka sukai yang diekspos melalui antarmuka AIDL Anda."
sumber