Pertanyaan Izin Marshmallow tidak berfungsi untuk TargetVersion di bawah 23


Proyek saya adalah proyek yang sudah lama berjalan. Saya telah menetapkan versi target sebagai 10, 4 tahun ke belakang. Saya tidak dapat mengubah versi target menjadi 23, karena saya menggunakan httpImageCache dan juga mengalami masalah dengan UI. Masalah saya adalah, ketika Marshmallow dirilis, saya mencoba mengintegrasikan Marshmallow dengan targetVersion 10,

 int returnedPermission = ContextCompat.checkSelfPermission(MyActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE);

fungsi ini selalu mengembalikan '0' jika saya secara manual ON atau izin penyimpanan dari halaman Pengaturan Aplikasi. Bisakah tolong bantu saya?


8
2017-10-20 09:26


asal


Jawaban:


Karena @Commonware telah memberikan jawabannya, tetapi di sini saya menambahkan lebih banyak detail untuk pertanyaan yang mungkin membantu Anda. Sesuai situs pengembang android resmi:

  • Jika perangkat menjalankan Android 5.1 atau lebih rendah, atau aplikasi Anda target SDK 22 atau lebih rendah: Jika Anda mendaftarkan izin berbahaya di Anda manifes, yang pengguna harus memberikan izin ketika mereka menginstal aplikasi; jika mereka tidak memberikan izin, sistem tidak menginstal aplikasi sama sekali.

  • Jika perangkat menjalankan Android 6.0 atau lebih tinggi, dan target aplikasi Anda SDK 23 atau lebih tinggi: Aplikasi harus mencantumkan izin di terwujud, dan harus meminta setiap izin berbahaya yang dibutuhkannya saat aplikasi sedang berjalan. Pengguna dapat memberikan atau menolak setiap izin, dan aplikasi dapat terus berjalan dengan kemampuan terbatas bahkan jika pengguna menolak permintaan izin.

Karena target SDK Anda 10, aplikasi akan berjalan seperti sebelumnya. Pokoknya harap dicatat bahwa pengguna masih dapat mencabut izin setelah itu .. !!! Meskipun Android 6.0 memperingatkan pengguna ketika mereka mencoba melakukan itu tetapi mereka tetap dapat mencabutnya.

Pernyataan di atas diambil dari situs pengembang android resmi.


4
2017-10-20 10:53



Bisakah tolong bantu saya?

Hapus kode itu, karena tidak berguna untuk Anda. Jika Anda targetSdkVersion di bawah 23, Anda tidak dapat mengetahui apakah izin pengguna dicabut atau tidak.


3
2017-10-20 10:37



menggunakan PermissionChecker.checkSelfPermission () 

ketika targetSdkVersion <= 22, Anda juga dapat menggunakan requestPermission ()


3
2018-03-28 07:08