gpt4 book ai didi

Android - 从 adb 创建快捷方式

转载 作者:太空狗 更新时间:2023-10-29 14:16:53 26 4
gpt4 key购买 nike

我想通过 adb 为我正在开发的应用程序创建快捷方式。

我看过Grepcode看看 Android 的 Intent 是如何被格式化的。我还检查了 AM documentation尝试创建所需的 Intent 。

到目前为止,我得到了下面这行的很多变体,但这一个似乎是最合适的。

adb -d shell am broadcast \
-a com.android.launcher.action.INSTALL_SHORTCUT \
--es Intent.EXTRA_SHORTCUT_NAME "<shortcut-name>" \
--esn Intent.EXTRA_SHORTCUT_ICON_RESOURCE \
<package-name>/.activity

我将 EXTRA_SHORTCUT_ICON_RESOURCE 留空,因为 Android 应该搜索包本身并使用那里定义的 app_icon。

命令运行并产生

Broadcasting: Intent { act=com.android.launcher.action.INSTALL_SHORTCUT cmp=<package-name>/.activity (has extras) }
Broadcast completed: result=0

主界面没有加快捷方式,估计跟命令的切换有关系。

有人遇到过这样的事情吗?

非常感谢任何帮助。

-JK

最佳答案

default ICS Launcher as reference ,我看到 Intent 需要一个你没有发送的额外信息:android.intent.extra.shortcut.INTENT .此 Intent 将用于启动快捷方式指向的应用程序。意识到这个额外的预期类型是一个 parcelable 。到目前为止我知道,am无法发送这样的数据结构。

作为解决方法,您可以创建一个非常简单的应用程序来发送此广播。

首先,添加权限<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />到 AndroidManifest.xml

然后,您可以在 Activity 中尝试:

Intent shortcut = new Intent(Intent.ACTION_VIEW);
shortcut.setClassName("<package-name>", "<package-name>.activity");

Intent intent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "<shortcut-name>");
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcut);

sendBroadcast(intent);

关于Android - 从 adb 创建快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21043432/

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