생각해보니까, 권한 받기에 관한 세팅을 안드로이드용만 했다.
그러면, 안드로이드 폰으로 실행해야 한다.
근데 나는 아이폰으로 실행해서 권한창이 안떴던 것.
아래 사진처럼, 안드로이드 폰으로 실행했더니 권한팝업창 떴다 !! 👏🏻
권한
권한 받으려면 세팅 해야함.
세팅에는, 안드로이드 용이랑 아이폰 용이 있음.
(나중에 아이폰 용 세팅 해야함. 안드로이드용만 했음.🔮)
패키지
패키지는 만든 사람이 만든 거니까 이해하지 말고, 복붙하기 ㅎ
문법
await 뒤에 오는 코드는 지금 실행하고 다음줄로 넘어가라는 뜻
dart 특징
실행이 오래 걸리는 코드(줄)는 우선 넘기고 나중에 함.
단점이.. 넘기면 오류가 나는 코드도 넘겨버림.
그래서 await 문법으로 넘기지 말라함.
import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';
void main() {
runApp(
MaterialApp(
home : MyApp()
)
);
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
getPermission() async {
var status = await Permission.contacts.status;
if (status.isGranted) {
print('허락됨');
} else if (status.isDenied) {
print('거절됨');
Permission.contacts.request();
}
}
@override
Widget build(context) {
return Scaffold(
appBar: AppBar( actions: [
IconButton(onPressed: (){getPermission();}, icon: Icon(Icons.arrow_forward_ios_sharp))
],),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.arrow_forward_ios_sharp),
onPressed: (){
showDialog(
context: context,
builder: (context){
return Dialog(
child: Text('AlertDialog Title'),
);
}
);
}
),
);
}
}