先获取读写手机存储权限
import 'package:permission_handler/permission_handler.dart';
///请求读写手机存储权限
Future checkPermisson() async {
if (Platform.isAndroid) {
//当前权限
Permission permission = Permission.storage;
//权限的状态
PermissionStatus status = await permission.status;
if (status.isUndetermined) {
//从未申请过
print("从未申请过");
//多个权限申请
Map<Permission, PermissionStatus> statuses = await [Permission.storage,].request();
} else if (status.isDenied) {
//第一次申请用户拒绝
print("第一次申请用户拒绝");
} else if (status.isPermanentlyDenied) {
//用户点击了 拒绝且不再提示
print("用户点击了 拒绝且不再提示");
} else {
//权限通过
print("权限通过");
//获取登录保存文件 loginSave.json
_getLoginSaveFlie();
}
}
}
写入json文件
import 'dart:async';
import 'dart:io';
import 'dart:convert' as convert;
//创建登录保存文件 loginSave.json
void _createLoginSaveFlie() async {
// 登陆成功创建一个文件,文件存在就保存数据
try {
//保存路径
String savePath = "";
///判断手机系统型号
if (Platform.isAndroid) {
savePath = "/sdcard/Download/" + "loginSave.json";
} else if (Platform.isIOS) {
/*//Caches文件夹:保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录。一般存储体积大、不需要备份的非重要数据
Directory tempDir = await getTemporaryDirectory();
savePath = tempDir.path + "/" + temp.last;*/
// 获取文档目录的路径
Directory appDocDir = await getApplicationDocumentsDirectory();
String dir = appDocDir.path;
savePath = dir + "/" + "loginSave.json";
}
File jsonFile = new File(savePath);
//判断文件是否存在
if (!jsonFile.existsSync()) {
//文件不存在创建文件
jsonFile.createSync();
print('loginSave.txt创建成功');
} else {
print('loginSave.txt文件已存在');
}
//写入数据
var json = {
'carrier_user_agreement': true,
};
// json文件写入
jsonFile.writeAsString(convert.jsonEncode(json));
} catch (e) {
print('loginSave.txt创建失败');
}
}
读取json文件
import 'dart:async';
import 'dart:io';
import 'dart:convert' as convert;
//获取登录保存文件 loginSave.json
void _getLoginSaveFlie() async {
try {
//保存路径
String savePath = "";
///判断手机系统型号
if (Platform.isAndroid) {
savePath = "/sdcard/Download/" + "loginSave.json";
} else if (Platform.isIOS) {
/*//Caches文件夹:保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录。一般存储体积大、不需要备份的非重要数据
Directory tempDir = await getTemporaryDirectory();
savePath = tempDir.path + "/" + temp.last;*/
// 获取文档目录的路径
Directory appDocDir = await getApplicationDocumentsDirectory();
String dir = appDocDir.path;
savePath = dir + "/" + "loginSave.json";
}
File jsonFile = new File(savePath);
//判断文件是否存在
if (jsonFile.existsSync()) {
// json文件读取
var jsonStr = await jsonFile.readAsString();
var json = convert.jsonDecode(jsonStr);
print(json['carrier_user_agreement']); // xiaoming
setState(() {
_checkbox = json['carrier_user_agreement'];
});
} else {
print('loginSave.txt文件不存在');
setState(() {
_checkbox = false;
});
}
} catch (e) {
print('读取loginSave.txt文件失败');
}
}

这篇博客介绍了如何在Android和iOS平台上获取读写手机存储的权限,并提供了写入和读取JSON文件的实现方法。通过使用dart:io和permission_handler库,实现了对loginSave.json文件的创建、读取和数据存储功能。

809

被折叠的 条评论
为什么被折叠?



