2023-10-20 14:12:43 +00:00
|
|
|
import 'dart:developer';
|
|
|
|
import 'dart:io';
|
|
|
|
|
|
|
|
Future<void> grantCameraPermission() async {
|
|
|
|
try {
|
|
|
|
final bool adbExists = Process.runSync('which', <String>['adb']).exitCode == 0;
|
|
|
|
if (!adbExists) {
|
|
|
|
log(r'This test needs ADB to exist on the $PATH. Skipping...');
|
|
|
|
exit(0);
|
|
|
|
}
|
|
|
|
final deviceId = await Process.run('adb', ["-s", 'shell', 'devices']).then((value) {
|
|
|
|
if (value.stdout is String) {
|
|
|
|
return RegExp(r"(?:List of devices attached\n)([A-Z0-9]*)(?:\sdevice\n)")
|
|
|
|
.firstMatch(value.stdout as String)!
|
|
|
|
.group(1);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
if (deviceId == null) {
|
|
|
|
log('This test needs at least one device connected');
|
|
|
|
exit(0);
|
|
|
|
}
|
|
|
|
await Process.run('adb', [
|
|
|
|
"-s",
|
|
|
|
deviceId, // https://github.com/flutter/flutter/issues/86295#issuecomment-1192766368
|
|
|
|
'shell',
|
|
|
|
'pm',
|
|
|
|
'grant',
|
|
|
|
'com.vodemn.lightmeter.dev',
|
2024-04-06 17:14:37 +00:00
|
|
|
'android.permission.CAMERA',
|
2023-10-20 14:12:43 +00:00
|
|
|
]);
|
|
|
|
} catch (e) {
|
|
|
|
log('Error occured: $e');
|
|
|
|
}
|
|
|
|
}
|