0

你好朋友我正在开发启动器应用程序。对于选择我的启动器作为家庭应用程序,三星会显示一个弹出窗口。通过使用此代码。

 private void launchAppChooser() {
    PackageManager packageManager = getPackageManager();
    // get dummyActivity
    ComponentName componentName = new ComponentName(context, DummyActivity.class);
    // enable dummyActivity (it starts disabled in the manifest.xml)
    packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);

    // create a new (implicit) intent with MAIN action
    Intent intent = new Intent(Intent.ACTION_MAIN);
    // add HOME category to it
    intent.addCategory(Intent.CATEGORY_HOME);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    // launch intent
    startActivity(intent);

    // disable dummyActivity once again
    packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

}

但此代码不适用于 OPPO 和 HUAWEI。我正在使用以下行显示相同的弹出窗口以选择主页启动器

startActivity(Intent.createChooser(intent,"Select Launcher App"));

此代码显示带有启动器应用程序的弹出窗口,但是当我单击任何应用程序时,它未设置为默认值。我可以从 OPPO 的设置中打开主屏幕活动以选择像这样的默认启动器(请打开图像)。因为 CM Launcher 应用程序正在打开此活动 单击此处打开图像 现在我想以编程方式打开此活动。并需要你的帮助来做这件事。

4

1 回答 1

0

要签入 oppo 设备,您必须检查当前默认家庭应用程序包名称是否包含"oppo.launcher".

之后,使用此代码使用它。您可以在“oppo 设备”中打开默认家庭应用设置

Intent intent = new Intent();
intent.setAction(Settings.ACTION_HOME_SETTINGS);
startActivity(intent);

这是将当前家庭应用程序更改为启动器应用程序的替代解决方案。此意图将用户重定向到 oppo 设备中的默认启动器应用程序列表。

于 2019-08-23T11:02:32.580 回答