Permission di Android (Java)

Apa Itu Permission di Android?
Permission di Android adalah izin yang diperlukan oleh aplikasi untuk mengakses fitur atau data tertentu pada perangkat pengguna. Sejak Android 6.0 (API level 23), sistem menggunakan “Runtime Permission”, di mana pengguna harus memberikan izin saat aplikasi berjalan.
Jenis-Jenis Permission di Android
- Normal Permissions – Secara otomatis diberikan oleh sistem, seperti
ACCESS_NETWORK_STATE
. - Dangerous Permissions – Memerlukan persetujuan pengguna, seperti
READ_CONTACTS
. - Special Permissions – Izin khusus seperti
SYSTEM_ALERT_WINDOW
.
Cara Menggunakan Permission di Android
1. Menambahkan Permission di AndroidManifest.xml
Sebelum meminta izin di runtime, tambahkan permission ke dalam AndroidManifest.xml
:
<manifest>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
</manifest>
2. Mengecek dan Meminta Izin Secara Runtime
Sejak Android 6.0, izin harus diminta saat aplikasi berjalan:
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
public class MainActivity extends AppCompatActivity {
private static final int CAMERA_PERMISSION_CODE = 100;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Cek apakah izin sudah diberikan
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
// Jika belum, minta izin
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, CAMERA_PERMISSION_CODE);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == CAMERA_PERMISSION_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Izin diberikan
} else {
// Izin ditolak
}
}
}
}
3. Menangani Penolakan Izin
Jika pengguna menolak izin, Anda bisa menampilkan dialog penjelasan:
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) {
// Tampilkan dialog edukasi
} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, CAMERA_PERMISSION_CODE);
}
4. Mengecek Izin yang Sudah Diberikan
Untuk mengecek apakah izin telah diberikan:
boolean isGranted = ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED;
Kesimpulan
Permission di Android sangat penting untuk mengakses fitur perangkat dengan aman. Pastikan Anda meminta izin dengan cara yang benar agar pengalaman pengguna tetap baik dan aplikasi tidak mengalami error.
Semoga bermanfaat!