Flutter'da Sensör, Kamera ve Konum Erişimi
Flutter uygulamalarında cihazın donanım özelliklerine erişmek, kullanıcı deneyimini zenginleştiren temel bir beceridir. Sensörler (ivmeölçer, jiroskop), kamera ve konumlandırma bu işlemlerin başında gelir.
Flutter'da `sensors_plus` paketi kullanarak ivmeölçer, jiroskop ve manyetometre verilerine ulaşabilirsin. Önce pubspec.yaml dosyasına paketi ekle:
1dependencies:2sensors_plus: ^1.4.0Ardından ivmeölçer verilerini okumak için:
1import 'package:sensors_plus/sensors_plus.dart';23class SensorPage extends StatefulWidget {5State<SensorPage> createState() => _SensorPageState();6}78class _SensorPageState extends State<SensorPage> {9late StreamSubscription<AccelerometerEvent> _accelerometerSubscription;10String _sensorData = "Veri bekleniyor...";1113void initState() {14super.initState();15_accelerometerSubscription = accelerometerEvents.listen((event) {16setState(() {17_sensorData = "X: ${event.x.toStringAsFixed(2)}, "18"Y: ${event.y.toStringAsFixed(2)}, "19"Z: ${event.z.toStringAsFixed(2)}";20});21});22}2325void dispose() {26_accelerometerSubscription.cancel();27super.dispose();28}2931Widget build(BuildContext context) {32return Scaffold(33appBar: AppBar(title: Text("Sensör Verileri")),34body: Center(child: Text(_sensorData)),35);36}37}Çıktı: Cihazı hareket ettirdikçe X, Y, Z eksenlerindeki ivme değerleri güncellenir (örn: X: 0.15, Y: -0.08, Z: 9.81).
`geolocator` paketi ile GPS konumuna ulaşabilirsin:
1dependencies:2geolocator: ^9.0.0Android için AndroidManifest.xml'e izinleri ekle:
1<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />2<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />Konum alma kodu:
1Position position = await Geolocator.getCurrentPosition(2desiredAccuracy: LocationAccuracy.high,3);45print("Enlem: ${position.latitude}, Boylam: ${position.longitude}");Çıktı: Enlem: 41.0082, Boylam: 28.9784 (örnek İstanbul koordinatları).
`camera` paketi ile cihaz kamerasını kontrol edebilirsin:
1dependencies:2camera: ^0.10.0Basit kamera uygulaması:
1final cameras = await availableCameras();2final firstCamera = cameras.first;34final controller = CameraController(5firstCamera,6ResolutionPreset.high,7);89await controller.initialize();Her durumda izinleri kontrol et ve kullanıcıdan iste. Sensör, konum ve kamera erişimi hassas verilerdir; güvenlik ve gizlilik en öncelikli tutulmalı.
0 yorum