如何在Flutter项目中的Assets文件夹中获取文件路径(例如图片,PPT)?

时间:2018-10-25 08:44:09

标签: android dart flutter

这是Flutter中的资产目录:

enter image description here

我要实现的功能是:通过android_intent插件调用本机应用程序来打开.ppt文件。但是我无法在Assets目录中获取文件路径。我尝试了path_provider插件的getApplicationDocumentsDirectory()getTemporaryDirectory()getExternalStorageDirectory()方法。只有最后一种方法可以成功打开文件,但是用于返回SD卡目录的方法(我还将PPT文件放在相应的位置),而不是在资产目录中。 那么如何获取资产目录中的文件路径?

pubspec.yaml: enter image description here

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();

0 个答案:

没有答案