通过ADB在Android中创建快捷方式

时间:2013-01-19 02:35:32

标签: android adb

可以在Android的启动器上创建ADB的快捷方式吗? 我有一个.bat文件来从我的PC安装我的应用程序(通过双击),但在此之后我需要总是搜索启动器的巨大(不那么用户友好)应用程序列表。如果可以将此功能添加到我的.bat文件中会很棒。 我已经尝试在没有任何运气的情况下在网上搜索:S。

提前致谢

1 个答案:

答案 0 :(得分:8)

有几种方法可以解决这个问题。如果您的主要需求是每次重新编辑时能够快速启动应用程序,那么adb shell am intent -n com.example.app/.App是最简单的解决方案。

如果您只想制作一个快捷方式(并且您不关心在哪里),请按照每个人的说法使用com.android.launcher.action.INSTALL_SHORTCUT。你需要一个app或bin才能这样做,因为am广播不会采用嵌套的意图。

如果您正在使用特定的启动器(如ADW Launcher),则可以破解快捷方式数据库。这将允许您指定快捷方式的坐标(在这种情况下为[2,3])

adb shell sqlite3 /data/data/org.adw.launcher/databases/launcher.db "DELETE FROM favorites WHERE _id=1; INSERT INTO favorites VALUES(1,'MyApp','#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.example.app/.App;end',-100,0,2,3,1,1,0,-1,NULL,0,NULL,NULL,NULL,NULL,NULL);"

您需要告诉启动器从数据库中刷新。通常唯一的办法是杀死发射器。更高版本的am(ActivityManager shell命令)具有重新启动程序包的选项,而早期版本则没有。在这种情况下,您需要编写一个小应用程序:

ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
am.restartPackage("org.adw.launcher");