Mengapa begitu banyak aplikasi memerlukan izin untuk membaca status dan identitas ponsel ?. Secara khusus:
Phone calls
read phone state and identity
Misalnya Quickpedia adalah portal Wikipedia, tetapi menginginkan akses ke telepon. Apa penjelasan untuk ini?
permissions
privacy
Nam G VU
sumber
sumber
Jawaban:
Ini memungkinkan Aplikasi untuk membaca ID unik (pengidentifikasi telepon bernama IMEI ) yang terkait dengan ponsel Anda.
Karena itu dapat membantu dengan perlindungan salinan atau upaya untuk melacak jumlah pengguna.
sumber
Ada alasan lain untuk ini selain ID unik. Saya kira setengah dari aplikasi tidak mengakses nilai-nilai itu sama sekali. Masalahnya adalah bahwa untuk versi yang lebih rendah hingga Android 1.5 izin ini tidak ada. Semua orang dapat mengakses nilai-nilai ini tanpa meminta sesuatu.
Karenanya jika Anda membuat aplikasi yang kompatibel dengan 1.5 izin ini akan secara otomatis ditambahkan untuk meniru keamanan Android 1.5 yang lebih rendah karena itu Anda dapat mengabaikan izin ini di sebagian besar waktu karena cenderung hanya masalah kompatibilitas.
sumber
Alasannya adalah bahwa Android 1.5 dan sebelumnya tidak memerlukan aplikasi untuk secara khusus meminta izin tersebut dan secara otomatis memberikannya. Sejak Android 1.6, izin tersebut harus secara khusus diminta oleh aplikasi. Namun, jika Anda menentukan bahwa aplikasi Anda dapat berjalan di perangkat dengan Android 1.5 dan lebih sedikit, maka izin itu ditambahkan ke aplikasi secara default dan pasar menunjukkan izin itu seperti yang diminta oleh aplikasi.
Jadi, secara ringkas, aplikasi mungkin tidak benar-benar mengakses "status dan identitas ponsel" Anda, tetapi jika pengembang menentukan bahwa aplikasinya dapat berjalan pada perangkat dengan 1,5 atau kurang maka izin tersebut akan ditampilkan.
sumber
Pertanyaan ini cukup mengganggu saya. Jadi sekarang, akhirnya, saya memutuskan untuk menyelesaikan masalah ini.
Playstore memiliki aplikasi bernama izin.READ_PHONE_STATE , yang meminta
READ_PHONE_STATE
sebagai satu-satunya izin, dan tidak melakukan apa pun selain mencetak semua data yang dapat diakses dengan atau tanpa menggunakannya. Saya telah menginstalnya di LG Optimus 4X saya , sedang di-root pada Android 4.0, dan mencabut izin menggunakan LBE. Hasil yang cukup menarik, seperti yang ditunjukkan tangkapan layar berikut:Informasi yang dikumpulkan oleh izin aplikasi.READ_PHONE_STATE (klik gambar untuk varian yang lebih besar)
Seperti yang Anda dapat dengan mudah melihat, bahkan beberapa informasi dev meskipun tidak dapat diakses tanpa izin, dapat diakses secara bebas: nomor kotak surat saya (komentar: Ya, itu yang benar; dengan penyedia saya itulah jalan pintas ketika melakukan panggilan dari perangkat Anda sendiri, sehingga saya dapat bebas menampilkannya;) Pada akhir tangkapan layar pertama Anda melihat:
CALL_STATE_IDLE
. Jadi tidak ada panggilan telepon masuk, keluar, atau sedang berlangsung. Tidak ada aplikasi yang memerlukan izin ini untuk "melatarbelakangi" dirinya pada panggilan masuk.Bahkan mungkin untuk melihat apakah data seluler aktif (
DATA_DISCONNECTED
; Saya menggunakan WiFi saat mengambil tangkapan layar, seperti yang dapat Anda lihat di bilah pemberitahuan), di negara mana Anda berada, penyedia Anda (termasuk beberapa data teknis tentangnya), apakah Anda memiliki kartu SIM, atau jika sedang roaming.Satu-satunya hal yang tidak dapat diakses adalah mengidentifikasi data: IMEI, SIMID, IMSI, dan nomor telepon Anda sendiri.
Kesimpulan: Izin ini hanya diperlukan untuk tujuan identifikasi, tidak ada yang lain.
Mengapa begitu banyak aplikasi membutuhkannya?
Kemungkinan persis urutan ini, IMHO.
1 Catatan oleh pos Dan di obrolan :
Karena sulit bagi pengguna untuk mengetahui untuk apa aplikasi menggunakan IMEI, Anda harus meminta pengembang untuk menjelaskan terlebih dahulu.
2 Pengembang lain baru saja menunjukkan kepada saya perbedaan yang tipis: sementara izin tidak diperlukan untuk membaca status panggilan saat ini (seperti yang telah saya tunjukkan), mungkin perlu mendaftarkan pendengar agar diberi tahu tentang perubahan panggilan status (lihat: Mendeteksi panggilan telepon masuk dan keluar di Android ). Meskipun tampaknya ada cara untuk menangani hal ini secara otomatis ketika sistem memanggil
onPause
, itu mungkin tidak selalu cocok: pikirkan jam alarm Anda. Anda mungkin tidak ingin hal itu secara otomatis dihentikan pada panggilan masuk - terutama tidak ketika profil Anda diatur ke volume dering "dibisukan".3 Sekali lagi koreksi dari Dan : Anda hanya mendapatkan izin ekstra default jika versi "target" aplikasi Anda adalah 1,5. Jika Anda menargetkan versi yang lebih baru tetapi versi min Anda 1,5, Anda tidak mendapatkan izin ditambahkan secara otomatis.
Pembaruan
READ_PHONE_STATE
apa yang diperlukan untuk a) mendeteksi panggilan masuk dan yang terkait (telepon), dan izin kedua untuk rincian identifikasi (IMEI, IMSI, dll). Dibuka 11/2011, masih belum bekerja. Bintangi jika tertarik :)READ_PHONE_STATE
izin, seperti misalnya ditunjukkan oleh Arno Welzel . Sebagai panggilan telepon masuk akan memicu dering, yang acara dapat digunakan denganonAudioFocusChange()
, yang tidak memerlukan izin khusus: jika dipicu oleh itu, aplikasi bisa memeriksa CallState (sekali lagi, tanpa izin khusus diperlukan) untuk melihat apakah ada sebuah panggilan masuk.sumber
onPause()
adalah apa yang kita bahas dalam obrolan untuk itu! Tetapi menggunakan bahkanonAudioFocusChange()
mungkin lebih sedikit overhead (polling kecil kemudian mungkin diabaikan).Banyak penerbit iklan menggunakan izin ini untuk mendapatkan ID Telepon untuk semua jenis tujuan pelacakan. Ada cara lain untuk mendapatkan ID unik, tetapi sayangnya mereka buggy di versi Android yang lebih lama (ceritanya lebih rumit, lihat misalnya https://stackoverflow.com/questions/2785485/is-there-a-unun-android- device-id atau http://android-developers.blogspot.com/2011/03/identifying-app-installations.html untuk cerita yang lebih lengkap).
Jadi jika aplikasi menggunakan iklan, ada kemungkinan wajar bahwa aplikasi itu sendiri sebenarnya tidak memerlukan izin READ_PHONE_STATE, hanya penyedia iklan yang melakukannya.
sumber