gpt4 book ai didi

android - 使用参数启动 android 应用程序 - 快捷方式

转载 作者:行者123 更新时间:2023-11-29 18:38:18 24 4
gpt4 key购买 nike

我开发了一个读取配置文件的 Android 应用程序。
现在,我想用另一个文件配置加载我的应用程序。

事实上,我想为我的应用创建 2 个快捷方式:

  • 我的应用程序文件路径配置1
  • 我的应用程序文件路径配置2

这可能吗?
如果是,如何获取我代码中的参数?

谢谢你的帮助

最佳答案

这在 Android 7.1 Nougat API 级别 25 或更高级别上很容易做到。

有一个专用的Shortcut API它允许您使用特定的 Intent 为您的 Activity 定义快捷方式,您可以在其中添加额外的内容,如下所示:

<intent
android:action="android.intent.action.LAUNCH_WITH_CONFIG"
android:targetPackage="com.example.myapplication"
android:targetClass="com.example.myapplication.ComposeActivity" >

<extra android:name="configFile" android:value="filepathconfig1" />

</intent>

上面的代码是基于一个例子here .

根据评论进行编辑:您还可以按照描述动态添加和删除快捷方式 here .如果您想以用户身份更改快捷方式而不重新编译,您将需要应用中的一些 UI 来管理快捷方式。

要访问代码中的额外内容,只需在 Activity 类中执行此操作:

String configPath = getIntent().getStringExtra("configFile");

然而,如果您需要支持 7.1 之前的 Android 版本,它会变得更加复杂。

我能想到的有两种选择:第一个是使用 <activity-alias>如所述here .

但是请注意,该问题的作者声明不能保证它在所有设备上都能正常工作。

另一种选择是创建两个虚拟启动器 Activity ,它们是不可见的,并且会在使用正确参数启动真正的主要 Activity 后立即finish()

在我看来,这是最丑陋的 hack,但也是解决此问题的最可靠和通用的 hack。

在您的 list 中,将 Activity 主题设置为 android:theme="@android:style/Theme.Translucent.NoTitleBar"

在此 Activity 的 onCreate 中添加如下代码:

Intent i = new Intent(this, RealMainActivity.class);
i.puStringExtra("configFile", "filepathconfig1");
startActivity(i);
finish();

我从您的评论中看到您希望它动态运行,而无需重新编译 APK,但 Android 启动器不支持此类功能。至少,我从未听说过这样做的。

虽然可以创建这样的启动器。

目前使用动态参数启动 Activity 的唯一方法是从 adb:

adb shell am start com.myactivity --es configFile configFilePath

有关更多详细信息,请阅读 this .

关于android - 使用参数启动 android 应用程序 - 快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53553872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com