这是Flutter中的资产目录:
我要实现的功能是:通过android_intent插件调用本机应用程序来打开.ppt
文件。但是我无法在Assets目录中获取文件路径。我尝试了path_provider插件的getApplicationDocumentsDirectory()
,getTemporaryDirectory()
和getExternalStorageDirectory()
方法。只有最后一种方法可以成功打开文件,但是用于返回SD卡目录的方法(我还将PPT文件放在相应的位置),而不是在资产目录中。
那么如何获取资产目录中的文件路径?
Java代码: 我直接将代码添加到android_intent插件中。
public static void registerWith(Registrar registrar) {
final MethodChannel channel =
new MethodChannel(registrar.messenger(), "plugins.flutter.io/android_intent");
channel.setMethodCallHandler(new AndroidIntentPlugin(registrar));
try {
AssetManager assetManager = registrar.context().getAssets();
key = registrar.lookupKeyForAsset("icons/test.pptx");
AssetFileDescriptor fd = assetManager.openFd(key);
} catch (Exception e) {
e.printStackTrace();
}
}
onMethodCall()
仅被修改:
if (call.argument("data") != null) {
intent.setData(Uri.parse(key));
}
Dart代码:
final AndroidIntent intent = AndroidIntent(
action: 'action_view',
data: '',
package: 'cn.wps.moffice_eng'
);
intent.launch();