Android 如何从Flatter应用程序启动高级下载管理器(ADM)应用程序并为其提供下载数据?
我是个新手,对安卓不太了解。我想让我的颤振应用程序允许用户使用下载数据启动ADM来下载文件。现在我尝试了不同的方法,但似乎确实奏效了。我试过了,但没有启动Android 如何从Flatter应用程序启动高级下载管理器(ADM)应用程序并为其提供下载数据?,android,flutter,Android,Flutter,我是个新手,对安卓不太了解。我想让我的颤振应用程序允许用户使用下载数据启动ADM来下载文件。现在我尝试了不同的方法,但似乎确实奏效了。我试过了,但没有启动 ListTile( title: Text("ADM LAUNCH"), onTap: () async { String adm = "com.dv.adm"; if (await canLaunch(adm)) { await laun
ListTile(
title: Text("ADM LAUNCH"),
onTap: () async {
String adm = "com.dv.adm";
if (await canLaunch(adm)) {
await launch(adm);
} else {
throw ("can't launch ");
}
},
),
我也尝试了android intent:
ListTile(
title: Text("android intent"),
onTap: () async {
final AndroidIntent intent = AndroidIntent(
action: 'action_view',
package: 'com.dv.adm',
);
await intent.launch();
},
),
如何从应用程序启动ADM并传入下载参数?还有,我必须通过什么样的论证?像链接或url?找到了这样做的方法:
软件包:android intent、设备应用程序
首先将活动添加到应用程序标记中的AndroidManifest.xml:
<!-- Android ADM intent -->
<activity android:name="com.dv.adm"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN">
</action>
</intent-filter>
</activity>
<!-- END OF ADM INTENT -->
颤振代码:
import 'package:device_apps/device_apps.dart';
import 'package:android_intent/android_intent.dart';
download(String url, String fileName) async {
bool isInstalled = await DeviceApps.isAppInstalled('com.dv.adm');
if (isInstalled) {
final AndroidIntent intent = AndroidIntent(
action: 'action_main',
package: 'com.dv.adm',
componentName: 'com.dv.adm.AEditor',
arguments: <String, dynamic>{
'android.intent.extra.TEXT': url,
'com.android.extra.filename': "$fileName.mp4",
},
);
await intent.launch().then((value) => null).catchError((e) => print(e));
} else {
// ask user to install the app
}
}
import'package:device_apps/device_apps.dart';
导入“包:android_intent/android_intent.dart”;
异步下载(字符串url、字符串文件名){
bool isInstalled=wait DeviceApps.isAppInstalled('com.dv.adm');
如果(已安装){
最终雄激素意图=雄激素(
动作:“动作”,
包:“com.dv.adm”,
组件名称:“com.dv.adm.AEditor”,
论据:{
'android.intent.extra.TEXT':url,
'com.android.extra.filename':“$filename.mp4”,
},
);
wait intent.launch().then((value)=>null.catchError((e)=>print(e));
}否则{
//要求用户安装应用程序
}
}
这将使用您提供的参数打开ADM编辑器