set app_dir via ffi
This commit is contained in:
		
							parent
							
								
									1f136f2ca0
								
							
						
					
					
						commit
						f043940152
					
				| @ -43,5 +43,6 @@ | ||||
|         <meta-data | ||||
|             android:name="flutterEmbedding" | ||||
|             android:value="2" /> | ||||
|     </application> | ||||
|       </application> | ||||
|       <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> | ||||
| </manifest> | ||||
|  | ||||
| @ -1,20 +1,28 @@ | ||||
| import 'package:ffi/ffi.dart'; | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'dart:io' show Platform; | ||||
| import 'package:path_provider/path_provider.dart'; | ||||
| import 'dart:io'; | ||||
| import 'dart:ffi'; | ||||
| import 'dart:async'; | ||||
| 
 | ||||
| void main() { | ||||
|   final dylib = Platform.isAndroid ? DynamicLibrary.open('librustdesk.so') : DynamicLibrary.process(); | ||||
|   final initialize = dylib.lookupFunction<Void Function(), void Function()>('initialize'); | ||||
|   initialize(); | ||||
|   // final connect = dylib.lookupFunction<Void Function(Pointer<Utf8>), void Function(Pointer<Utf8>)>('connect'); | ||||
|   // connect(Utf8.toUtf8('test')); | ||||
|   runApp(MyApp()); | ||||
| } | ||||
| 
 | ||||
| Future<Null> initialzeFFI() async { | ||||
|   final dylib = Platform.isAndroid ? DynamicLibrary.open('librustdesk.so') : DynamicLibrary.process(); | ||||
|   String dir = (await getApplicationDocumentsDirectory()).path; | ||||
|   final initialize = dylib.lookupFunction<Void Function(Pointer<Utf8>), void Function(Pointer<Utf8>)>('initialize'); | ||||
|   initialize(Utf8.toUtf8(dir)); | ||||
| } | ||||
| 
 | ||||
| class MyApp extends StatelessWidget { | ||||
|   // This widget is the root of your application. | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     initialzeFFI(); | ||||
|     return MaterialApp( | ||||
|       title: 'Flutter Demo', | ||||
|       theme: ThemeData( | ||||
|  | ||||
| @ -64,6 +64,13 @@ packages: | ||||
|       url: "https://pub.dartlang.org" | ||||
|     source: hosted | ||||
|     version: "0.1.3" | ||||
|   file: | ||||
|     dependency: transitive | ||||
|     description: | ||||
|       name: file | ||||
|       url: "https://pub.dartlang.org" | ||||
|     source: hosted | ||||
|     version: "5.2.1" | ||||
|   flutter: | ||||
|     dependency: "direct main" | ||||
|     description: flutter | ||||
| @ -74,6 +81,13 @@ packages: | ||||
|     description: flutter | ||||
|     source: sdk | ||||
|     version: "0.0.0" | ||||
|   intl: | ||||
|     dependency: transitive | ||||
|     description: | ||||
|       name: intl | ||||
|       url: "https://pub.dartlang.org" | ||||
|     source: hosted | ||||
|     version: "0.16.1" | ||||
|   matcher: | ||||
|     dependency: transitive | ||||
|     description: | ||||
| @ -95,6 +109,62 @@ packages: | ||||
|       url: "https://pub.dartlang.org" | ||||
|     source: hosted | ||||
|     version: "1.8.0-nullsafety.1" | ||||
|   path_provider: | ||||
|     dependency: "direct main" | ||||
|     description: | ||||
|       name: path_provider | ||||
|       url: "https://pub.dartlang.org" | ||||
|     source: hosted | ||||
|     version: "1.6.24" | ||||
|   path_provider_linux: | ||||
|     dependency: transitive | ||||
|     description: | ||||
|       name: path_provider_linux | ||||
|       url: "https://pub.dartlang.org" | ||||
|     source: hosted | ||||
|     version: "0.0.1+2" | ||||
|   path_provider_macos: | ||||
|     dependency: transitive | ||||
|     description: | ||||
|       name: path_provider_macos | ||||
|       url: "https://pub.dartlang.org" | ||||
|     source: hosted | ||||
|     version: "0.0.4+6" | ||||
|   path_provider_platform_interface: | ||||
|     dependency: transitive | ||||
|     description: | ||||
|       name: path_provider_platform_interface | ||||
|       url: "https://pub.dartlang.org" | ||||
|     source: hosted | ||||
|     version: "1.0.4" | ||||
|   path_provider_windows: | ||||
|     dependency: transitive | ||||
|     description: | ||||
|       name: path_provider_windows | ||||
|       url: "https://pub.dartlang.org" | ||||
|     source: hosted | ||||
|     version: "0.0.4+3" | ||||
|   platform: | ||||
|     dependency: transitive | ||||
|     description: | ||||
|       name: platform | ||||
|       url: "https://pub.dartlang.org" | ||||
|     source: hosted | ||||
|     version: "2.2.1" | ||||
|   plugin_platform_interface: | ||||
|     dependency: transitive | ||||
|     description: | ||||
|       name: plugin_platform_interface | ||||
|       url: "https://pub.dartlang.org" | ||||
|     source: hosted | ||||
|     version: "1.0.3" | ||||
|   process: | ||||
|     dependency: transitive | ||||
|     description: | ||||
|       name: process | ||||
|       url: "https://pub.dartlang.org" | ||||
|     source: hosted | ||||
|     version: "3.0.13" | ||||
|   sky_engine: | ||||
|     dependency: transitive | ||||
|     description: flutter | ||||
| @ -156,5 +226,20 @@ packages: | ||||
|       url: "https://pub.dartlang.org" | ||||
|     source: hosted | ||||
|     version: "2.1.0-nullsafety.3" | ||||
|   win32: | ||||
|     dependency: transitive | ||||
|     description: | ||||
|       name: win32 | ||||
|       url: "https://pub.dartlang.org" | ||||
|     source: hosted | ||||
|     version: "1.7.3" | ||||
|   xdg_directories: | ||||
|     dependency: transitive | ||||
|     description: | ||||
|       name: xdg_directories | ||||
|       url: "https://pub.dartlang.org" | ||||
|     source: hosted | ||||
|     version: "0.1.2" | ||||
| sdks: | ||||
|   dart: ">=2.10.0-110 <2.11.0" | ||||
|   flutter: ">=1.12.13+hotfix.5 <2.0.0" | ||||
|  | ||||
| @ -29,6 +29,7 @@ dependencies: | ||||
|   # Use with the CupertinoIcons class for iOS style icons. | ||||
|   cupertino_icons: ^1.0.0 | ||||
|   ffi: ^0.1.3 | ||||
|   path_provider: ^1.6.24 | ||||
| 
 | ||||
| dev_dependencies: | ||||
|   flutter_test: | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user