37 lines
1.2 KiB
Dart
37 lines
1.2 KiB
Dart
import 'dart:io';
|
|
|
|
import 'package:device_info_plus/device_info_plus.dart';
|
|
import 'package:flutter/services.dart';
|
|
import 'package:install_plugin/install_plugin.dart';
|
|
import 'package:package_info_plus/package_info_plus.dart';
|
|
import 'package:permission_handler/permission_handler.dart';
|
|
|
|
import '../track_event_manager/device_service.dart';
|
|
|
|
//安装工具
|
|
class InstallUtil {
|
|
///安装android和ios的app
|
|
installApp(String filePath) async {
|
|
//判断权限是否已有
|
|
if (await Permission.storage.request().isGranted) {
|
|
DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
|
|
deviceInfoPlugin.androidInfo.then((androidInfo) {
|
|
InstallPlugin.installApk(filePath, appId: androidInfo.id);
|
|
});
|
|
}
|
|
}
|
|
|
|
///安装apk
|
|
static Future<bool> installApk(apkPath) async {
|
|
bool exit = await File(apkPath).exists();
|
|
if (!exit) {
|
|
return Future.value(false);
|
|
}
|
|
String devId = DeviceInfoService.deviceId;
|
|
Clipboard.setData(ClipboardData(text: "***$devId^^^"));
|
|
PackageInfo packageInfo = await PackageInfo.fromPlatform();
|
|
InstallPlugin.installApk(apkPath, appId: packageInfo.packageName).then((result) {}).catchError((error) {});
|
|
return Future.value(true);
|
|
}
|
|
}
|