import 'package:flutter/material.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:project_telephony/base/base_style.dart'; import 'package:project_telephony/ui/widget/plone_back_button.dart'; import 'package:project_telephony/utils/headers.dart'; import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher_string.dart'; class PrivacyRightsPage extends StatefulWidget { final String name; const PrivacyRightsPage({Key? key, required this.name}) : super(key: key); @override _PrivacyRightsPageState createState() => _PrivacyRightsPageState(); } final Uri _url = Uri.parse('http://www.dxbs.vip/explain.html'); // final Telephony telephony = Telephony.instance; // late final bool permissionsGranted; // String body = ""; // @override // void initState() async { // initPlatformState(); // } bool sms=false; bool plone=false; @override class _PrivacyRightsPageState extends State { @override void initState() { super.initState(); Future.delayed(const Duration(seconds: 0),() async{ await _listenForPermissionStatus(); }); } Future _listenForPermissionStatus() async { sms=await Permission.sms.request().isGranted; plone =await Permission.phone.request().isGranted; setState(() {}); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( elevation: 0, title: Text( widget.name, style: TextStyle( fontSize: BaseStyle.fontSize34, color: BaseStyle.color333333, fontWeight: FontWeight.bold), ), titleSpacing: 162.w, leading: const CloudBackButton(isSpecial: true), backgroundColor: kForeGroundColor), backgroundColor: Colors.white, body: _getRights(), bottomNavigationBar: GestureDetector( onTap:()async{ // await _launchUrl(); // await launchUrlString("tel:13111111111"); } , // onTap: () async{ // // }, child: Container(margin: EdgeInsets.symmetric(horizontal: 64.w,vertical: 24.w), padding: EdgeInsets.symmetric(horizontal: 214.w,vertical: 26.w) , decoration: BoxDecoration(color:const Color(0xFFF9F9F9),borderRadius: BorderRadius.circular(8.w) ), child: Text("查看使用说明",style: TextStyle(color: const Color(0xFF1890FF),fontSize: 28.sp),),),), ); } // Color getPermissionColor() { // if(true){ // return Colors.red; // }else{ // return Colors.green; // } // } // String getPermissionStu() { // if (false) { // return "未允许"; // } else { // return "已允许"; // } // } Future _launchUrl() async { if (!await launchUrl(_url)) { throw 'Could not launch $_url'; } } _getRights(){ return ListTile( onTap: ()async{ if(!(sms && plone)){ // print(sms); // print(plone); openAppSettings(); }else{ // print("123123123123"); } // await Permission.phone.request(); // await Permission.sms.request(); // Map statuses = await [ // Permission.sms, // Permission.phone, // ].request(); // // openAppSettings(); // print(await Permission.phone.request().isGranted); // print(await Permission.sms.request().isGranted); }, title: Text( '获取设备来电', style: Theme.of(context).textTheme.titleMedium, ), subtitle: const Text( "获取设备", ), trailing: Wrap( children: [ Text(sms & plone ?"已允许":"未允许", style: TextStyle(color: sms & plone ?Colors.green:Colors.red)), const Icon(Icons.arrow_forward_ios), ], ), ); } }