Izin dan Sensor
Minta izin saat runtime dan baca sensor perangkat seperti akselerometer di Flutter untuk membangun aplikasi yang peka konteks dan terintegrasi dengan platform.
Izin dan Sensor adalah pelajaran Flutter Mobile Development gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Flutter Mobile Development, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Flutter Mobile Development mencakup 4 pelajaran total.
Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.
Why Permissions & Sensors?
Many platform features — camera, location, sensors — require runtime permission. And sensors like the accelerometer let your app react to physical movement.
The permission_handler Package
The permission_handler package gives a unified API for requesting and checking permissions across Android and iOS.
dependencies:
permission_handler: ^11.0.0Checking Status
Check whether a permission is granted before using a feature.
final status = await Permission.camera.status;
if (status.isGranted) {
openCamera();
}Requesting a Permission
Call request() to prompt the user. Always handle a denial gracefully.
final result = await Permission.location.request();
if (result.isGranted) {
startTracking();
}Permanently Denied
If the user permanently denies, you cannot re-prompt — send them to settings instead.
if (status.isPermanentlyDenied) {
await openAppSettings();
}Declaring Permissions
You must also declare permissions natively: AndroidManifest.xml on Android and Info.plist usage descriptions on iOS.
<!-- Android -->
<uses-permission android:name="android.permission.CAMERA" />
<!-- iOS Info.plist -->
<key>NSCameraUsageDescription</key>
<string>We need the camera to scan codes</string>Meet the Sensors
The sensors_plus package exposes device motion sensors as streams.
- Accelerometer
- Gyroscope
- Magnetometer
dependencies:
sensors_plus: ^4.0.0Reading the Accelerometer
Subscribe to the accelerometer stream to get x, y, z acceleration values.
accelerometerEventStream().listen((event) {
print('x: ' + event.x.toString() + ' y: ' + event.y.toString());
});The Gyroscope
The gyroscope reports rotation rate around each axis — useful for tilt and orientation effects.
gyroscopeEventStream().listen((event) {
print('rotation: ' + event.x.toString());
});Detecting a Shake
Combine accelerometer axes into a magnitude and compare against a threshold to detect a shake gesture.
import 'dart:math';
void onEvent(AccelerometerEvent e) {
final magnitude = sqrt(e.x * e.x + e.y * e.y + e.z * e.z);
if (magnitude > 15) onShake();
}Cleaning Up Subscriptions
Sensor streams keep firing — cancel the subscription in dispose to save battery.
late StreamSubscription sub;
@override
void dispose() {
sub.cancel();
super.dispose();
}Quick Check
The user permanently denied location. What should your app do?
Recap
You learned permissions and sensors:
- permission_handler: status, request, openAppSettings
- Native declarations on Android and iOS
- sensors_plus accelerometer and gyroscope streams
- Shake detection and cleanup
Your apps can now responsibly access platform capabilities.
Belajar Dart dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 22
- Pelajaran
- 88
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Izin dan Sensor” gratis?
Ya — teks lengkap “Izin dan Sensor” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Flutter Mobile Development, upgrade ke CoddyKit PRO. Kursus Flutter Mobile Development mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Izin dan Sensor”?
Minta izin saat runtime dan baca sensor perangkat seperti akselerometer di Flutter untuk membangun aplikasi yang peka konteks dan terintegrasi dengan platform. Kamu berlatih Flutter Mobile Development dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Flutter Mobile Development?
Tidak diperlukan pengalaman sebelumnya. Flutter Mobile Development di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Izin dan Sensor” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Flutter Mobile Development ini?
Ya. Setiap pelajaran Flutter Mobile Development menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.