首页 > 解决方案 > 颤振:以编程方式选择启动器作为默认启动器

问题描述

我正在开发一个启动器应用程序,并希望用户弹出一个弹出窗口,他们可以在其中选择我的应用程序作为他们的默认启动器,我已经看到很多关于堆栈溢出的问题,但它们是针对 android 的。我假设这样做的唯一方法是使用意图,所以我尝试使用这个意图包,我尝试在这里模拟代码,android:以编程方式选择默认启动器,但无法成功完成它。有没有办法在 Flutter 中做到这一点?无论如何,这是我尝试过的代码:

// method is called in initState()
void defaultLauncherOption() {
    intentFlutter
        .Intent()
          ..setAction("android.intent.action.MAIN")
          ..addCategory("android.intent.category.HOME")
          ..addCategory("android.intent.category.DEFAULT")
          ..addCategory("android.intent.category.LAUNCHER")
          ..startActivity().catchError((e) => print("intent error: " + e.toString()));
  }

// the code doesn't give any errors but is not performing any operation as well.

标签: androidflutterdartandroid-intentandroid-launcher

解决方案


如果有人需要这个问题的答案,我使用意图包和以下代码完成了它:

void displayDefaultLauncherChooser() {
    intentFlutter
        .Intent()
          ..setAction(actionFlutter.Action.ACTION_MAIN)
          ..addCategory("android.intent.category.HOME")
          ..addCategory("android.intent.category.DEFAULT")
          ..addFlag(flag.Flag.FLAG_ACTIVITY_NEW_DOCUMENT)
          ..startActivity().catchError((e) => print("intent error: " + e.toString()));
  }


推荐阅读