You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
project_telephony/lib/ui/user/privacy_rights_page.dart

140 lines
3.8 KiB

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';
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('https://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<PrivacyRightsPage> {
@override
void initState() {
super.initState();
Future.delayed(const Duration(seconds: 0),() async{
await _listenForPermissionStatus();
});
}
Future<void> _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<void> _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<Permission, PermissionStatus> 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),
],
),
);
}
}