Cara Membuat Notice Izin Aplikasi Android
Cara
Membuat Notice Izin Aplikasi Android
Di Android, tanpa izin dari pengguna perangkat, aplikasi Anda tidak dapat menggunakan data sistem, perangkat keras, dan fitur lainnya di perangkat. Jika aplikasi Anda bergantung pada fitur sistem atau perangkat keras tertentu, aplikasi perlu meminta izin untuk mengakses fitur tersebut di perangkat. Jika aplikasi menggunakan fitur atau data yang kurang sensitif, sistem akan secara otomatis memberikan izin tersebut. Untuk izin lainnya, penerimaan pengguna diperlukan.
Mempublikasikan Izin
Di
aplikasi Anda, Anda perlu mencantumkan semua izin yang diperlukan untuk
mengakses fitur dan data di AndroidManifest.xml. Misalnya, jika aplikasi
Anda perlu menulis ke penyimpanan perangkat, Anda perlu menambahkan izin
WRITE_EXTERNAL_STORAGE untuk memanifestasikan file xml.
<?xml
version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.zoftino.flights">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
......
</manifest>
Salah
satu tujuan pencatatan izin dalam manifes xml adalah membiarkan sistem
mengetahui semua izin yang diperlukan sehingga dapat memberikan secara otomatis
izin untuk fitur atau data yang kurang sensitif. Beberapa izin yang kurang
sensitif adalah ACCESS_NETWORK_STATE, ACCESS_WIFI_STATE, BLUETOOTH, INTERNET,
KILL_BACKGROUND_PROCESSES, SET_ALARM, SET_TIME_ZONE, SET_WALLPAPER, dan
VIBRATE.
Mempublikasikan Fitur
Agar
entitas eksternal tahu tentang fitur dan data aplikasi Anda, Anda harus
mencantumkan fitur-fitur yang digunakan aplikasi Anda di
AndroidManifest.xml. Misalnya, jika aplikasi Anda menggunakan kamera,
selain izin kamera, Anda perlu menambahkan fitur kamera dalam file xml yang
nyata.
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-permission
android:name="android.permission.CAMERA"/>
Entitas
eksternal seperti Google Play Store menggunakan elemen fitur-pengguna untuk
menentukan apakah aplikasi Anda harus ditampilkan kepada pengguna atau
tidak. Jika perangkat pengguna tidak memiliki fitur yang diminta dan
aplikasi Anda mencantumkannya sesuai kebutuhan, aplikasi Anda tidak akan
ditampilkan di play store untuk dipasang pengguna. Pengaturan atribut yang
diperlukan dari elemen uses-feature ke false mengatakan bahwa fitur tersebut
opsional dan pengguna dapat menggunakan aplikasi Anda tanpa adanya fitur pada
perangkat.
Misalnya
jika fitur kamera bersifat opsional untuk aplikasi Anda, Anda dapat mengatur
atribut yang diperlukan dari elemen menggunakan fitur ke false. Tetapi di
aplikasi Anda saat runtime, Anda perlu memeriksa apakah fitur kamera ada atau
tidak pada perangkat yang dijalankan dengan memanggil metode hasSystemFeature
di PackageManger dan berdasarkan hasil fitur aplikasi yang menggunakan kamera
dapat diaktifkan atau dinonaktifkan.
if(!getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)){
capturePic.setEnabled(false);
}
Meminta
Izin
Untuk
perangkat yang menjalankan Android 5.1.1 (API level 22) atau lebih rendah,
cukup mencantumkan izin cukup dan pada saat menginstal aplikasi Anda, sistem
meminta pengguna untuk menerima izin. Jika pengguna menerimanya,
pemasangan akan berlanjut jika tidak maka akan dibatalkan.
Tetapi
pada perangkat yang menjalankan Android 6.0 (API level 23) atau lebih tinggi,
aplikasi harus meminta izin saat runtime. Sebelum meminta izin, itu adalah
praktik yang baik untuk melihat apakah izin sudah diberikan atau
tidak. Anda dapat memeriksa apakah izin sudah diberikan atau tidak dengan
memanggil ContextCompat.checkSelfPermission () metode melewati konteks dan izin
untuk itu. Jika izin tidak diberikan, Anda dapat memintanya menggunakan
ActivityCompat.requestPermissions melalui konteks dan daftar izin untuk itu.
if (ContextCompat.checkSelfPermission(this,
"android.permission.READ_CONTACTS")
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{"android.permission.READ_CONTACTS"}, 2);
}
Pada
pemanggilan metode ActivityCompat.requestPermissions (), sistem meminta
pengguna dengan dialog yang memberikan opsi untuk mengizinkan atau menolak izin
yang diminta.
Setelah
pengguna mengizinkan atau menolak izin, sistem akan memanggil metode
onRequestPermissionsResult dalam aktivitas yang meminta izin. Jadi, jika
Anda perlu menangani tanggapan izin untuk mengetahui apakah izin yang diminta
diberikan atau ditolak, Anda harus menerapkan metode callback
onRequestPermissionsResult.
@Override
public void
onRequestPermissionsResult(int requestCode,
String
permissions[], int[] grantResults) {
switch (requestCode) {
case CONTACT_PERM_REQ: {
if (grantResults.length >
0
&& grantResults[0] ==
PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this,"Read
contacts granted"
,Toast.LENGTH_LONG).show();
}
return;
}
}
}
Izin Jangan Minta Opsi Lagi
Jika
pengguna menolak permintaan izin pertama kali dan izin yang sama diminta lagi,
tidak akan ada lagi kotak centang dalam dialog permintaan
izin. Opsi ini memungkinkan pengguna untuk memberi tahu sistem agar tidak
meminta izin yang sama lagi. Dalam skenario ini, jika aplikasi meminta
izin yang sama lagi, sistem akan mengabaikannya.
Penjelasan IzinDalam hal jika pengguna menolak izin, lebih baik memberikan informasi saat berikutnya ketika izin diminta mengapa aplikasi Anda memerlukan izin untuk membuat pengguna memahami alasannya dan bagaimana fitur yang diminta digunakan di aplikasi Anda.
Anda
dapat menggunakan metode shouldShowRequestPermissionRationale () dalam
aktivitas yang mengembalikan nilai true jika pengguna sudah menolak izin dan
memberikan penjelasan jika itu mengembalikan nilai true. Misalnya, Anda
dapat menampilkan dialog yang menunjukkan alasan di balik meminta izin.
if(shouldShowRequestPermissionRationale("android.permission.CAMERA")){
AlertDialog alertDialog = new
AlertDialog.Builder(this).create();
alertDialog.setTitle("Camera
Permission");
alertDialog.setMessage("Camera
permission is required to in order to " +
"provide photo capture
feature");
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
new
DialogInterface.OnClickListener() {
public void onClick(DialogInterface
dialog, int id) {
dialog.dismiss();
}
});
alertDialog.show();
}
Grup
Izin
Sistem
Android mengatur izin terkait ke dalam grup. Jika pengguna mengizinkan
izin dari grup dan aplikasi Anda meminta izin kedua dari grup yang sama, sistem
akan secara otomatis memberikan izin. Misalnya, jika pengguna menerima
permintaan aplikasi untuk izin READ_CALENDAR dan kemudian permintaan izin
WRITE_CALENDAR, sistem akan secara otomatis memberikan izin WRITE_CALENDAR
tanpa meminta penerimaan pengguna. Ini karena izin READ_CALENDAR dan
WRITE_CALENDAR milik grup CALENDAR.
Demikian
pula, READ_CONTACTS dan WRITE_CONTACTS milik grup CONTACTS. Jika Anda
melihat di screen shot di atas yang menunjukkan permintaan izin untuk
READ_CONTACTS, nama grup disebutkan dalam dialog izin.
Izin Khusus
Sejauh
ini kami menggunakan sistem yang memberikan izin yang memungkinkan aplikasi
untuk menggunakan fitur dan data perangkat. Anda dapat menentukan izin
khusus untuk aplikasi Anda untuk berbagi sumber daya atau layanan Anda dengan
aplikasi lain. Anda dapat membuat izin khusus di aplikasi Anda dengan
menentukan izin dalam file xml nyata menggunakan elemen izin.
<?xml
version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.zoftino.flights">
<permission
android:name="com.zoftino.flights.permission.USER_ACTIVITY"
android:label="Zoftino
User Activity"
android:description="This
permission allows apps to get user activity data"
android:protectionLevel="dangerous" />
Anda
dapat menggunakan izin khusus untuk membagikan aktivitas aplikasi, layanan, dan
penerima siaran, dll. Anda dapat menerapkan izin khusus ke komponen tersebut
dengan menambahkan atribut izin ke konfigurasi komponen terkait dalam xml
nyata.
<activity android:name=".FlightsActivity"
android:permission="com.zoftino.flights.permission.USER_ACTIVITY"></activity>
Jika
izin khusus diberlakukan untuk aktivitas dalam aplikasi, aplikasi lain yang
bergantung pada aktivitas perlu meminta izin dan pengguna harus menerimanya
sebelum aplikasi dapat memulai aktivitas jika tidak SecurityException akan
dibuang.
ini adalah ulasan tentang Cara membuat notice izin aplikasi di android
Semoga Bermanfaat .
0 Response to "Cara Membuat Notice Izin Aplikasi Android "
Post a Comment