|
|
|
@ -22,23 +22,47 @@ bool plone=false;
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
|
|
|
|
|
class _HomePageState extends State<HomePage> {
|
|
|
|
|
class _HomePageState extends State<HomePage> with WidgetsBindingObserver{
|
|
|
|
|
@override
|
|
|
|
|
void initState() {
|
|
|
|
|
super.initState();
|
|
|
|
|
//页面初始化的时候,添加一个状态的监听者
|
|
|
|
|
WidgetsBinding.instance.addObserver(this);
|
|
|
|
|
_listenForPermissionStatus();
|
|
|
|
|
setState(() {
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
setState(() {});
|
|
|
|
|
}
|
|
|
|
|
@override
|
|
|
|
|
void dispose(){
|
|
|
|
|
super.dispose();
|
|
|
|
|
//页面销毁时移出监听者
|
|
|
|
|
WidgetsBinding.instance.removeObserver(this);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> _listenForPermissionStatus() async {
|
|
|
|
|
sms=await Permission.sms.request().isGranted;
|
|
|
|
|
plone =await Permission.phone.request().isGranted;
|
|
|
|
|
setState(() {});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void didChangeAppLifecycleState(AppLifecycleState state){
|
|
|
|
|
super.didChangeAppLifecycleState(state);
|
|
|
|
|
switch (state){
|
|
|
|
|
//应用状态处于闲置状态,并且没有用户的输入事件,
|
|
|
|
|
// 注意:这个状态切换到 前后台 会触发,所以流程应该是先冻结窗口,然后停止UI
|
|
|
|
|
case AppLifecycleState.inactive:
|
|
|
|
|
print("应用处于闲置状态,这种状态的应用应该假设他们可能在任何时候暂停 切换到后台会触发======");
|
|
|
|
|
break;
|
|
|
|
|
case AppLifecycleState.resumed:
|
|
|
|
|
print("应用进入前台——————————");
|
|
|
|
|
_listenForPermissionStatus();
|
|
|
|
|
break;
|
|
|
|
|
case AppLifecycleState.paused:
|
|
|
|
|
print("应用处于不可见状态 后台======");
|
|
|
|
|
break;
|
|
|
|
|
case AppLifecycleState.detached:
|
|
|
|
|
print("当前页面即将退出======");
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
return Scaffold(
|
|
|
|
@ -71,13 +95,13 @@ class _HomePageState extends State<HomePage> {
|
|
|
|
|
));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool _getPermissions() {
|
|
|
|
|
if(sms && plone){
|
|
|
|
|
return true;
|
|
|
|
|
}else{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// bool _getPermissions() {
|
|
|
|
|
// if(sms && plone){
|
|
|
|
|
// return true;
|
|
|
|
|
// }else{
|
|
|
|
|
// return false;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
_warning() {
|
|
|
|
|
return Offstage(offstage: (sms && plone) ,child:
|
|
|
|
|
GestureDetector(
|
|
|
|
|