如何在Flutter程序中以编程方式卸载应用程序?

9

我正在使用Flutter构建启动器应用程序,但是我无法添加卸载功能。请帮助我。


你无法卸载该应用。你只能请求系统应用程序 Package Manager 启动卸载进程,用户需要确认是否想要卸载它。 - Vladyslav Matviienko
1
怎么做?你能帮忙吗?我在原生Java中做到了,但不知道如何在Dart中实现。 - Amon Chowdhury
你能在Dart中发送意图吗?如果可以,那么只需像Java一样发送正确的意图即可。 - Vladyslav Matviienko
@VickySalunkhe 不是的。 - Amon C
@AmonChowdhury,我已经找到了一种方法来实现它,请尝试并接受答案如果它有效 :) - Vicky Salunkhe
显示剩余3条评论
1个回答

6
manifest文件中添加权限。
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />

在你的pubspec.yaml文件中添加一个包

intent: ^1.3.4

使用下面所示的代码:

要卸载一个应用程序,请将其包名传递给它。$packageName是一个变量,例如:some.app.id

android_intent.Intent()
  ..setAction(android_action.Action.ACTION_DELETE)
  ..setData(Uri.parse("package:$packageName"))
  ..startActivityForResult().then((data) {
    print(data);
  }, onError: (e) {
    print(e);
  });

使用此方法,将会生成一个系统弹窗询问是否卸载该应用程序。
因此,您可以使用Flutter编程在您的安卓设备上自动卸载应用程序。

2
仅适用于Android,尚未测试iOS。 - Vicky Salunkhe
1
不用费心了。iOS 不允许那样做。 - Nishanth Sreedhara
1
这个包在卸载两次后会导致我的应用程序崩溃,如果你也遇到了这个问题,那么你可以在 pub.dev 中搜索卸载应用程序,并下载最近更新的包来解决这个错误,这是一个特定于意图的问题。此外,Flutter 团队提供的名为 android_intent 的包目前不支持删除包。 - Prateek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接