Android7.1 Launcher3 如何在workspace添加一个虚拟图标,实现首次点击后安装本地的一个apk

Android7.1 Launcher3 如何在workspace添加一个虚拟图标,实现首次点击后安装本地的一个apk?

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答由chatgpt基于相关博客总结生成:

    解决方案:

    要实现在 Android 7.1 的 Launcher3 中通过 workspace 添加一个虚拟图标来实现首次点击后安装本地的一个 apk,可以按照以下步骤进行:

    1. 首先,需要在 Launcher3 的源代码中找到 Workspace 类。Workspace 类是指向桌面的对象,可以通过拖动和放置应用程序、小部件和文件夹来进行自定义。

    2. 在 Workspace 类中,找到 bindWorkspaceScreens 方法。该方法用于绑定 workspace 的屏幕。

    3. bindWorkspaceScreens 方法的末尾,添加以下代码来创建一个虚拟图标,并设置其点击事件:

    ```java final Context context = getContext(); // 获取上下文对象

    // 创建虚拟图标 final AppInfo appInfo = new AppInfo(); appInfo.title = "Install APK"; // 设置图标的标题 appInfo.intent = new Intent(Intent.ACTION_VIEW);

    // 设置点击事件 appInfo.intent.setDataAndType(Uri.fromFile(new File("/path/to/apk")), "application/vnd.android.package-archive"); appInfo.intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); appInfo.intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

    // 创建虚拟图标的视图 final View shortcut = createShortcut(context, appInfo);

    // 设置点击事件监听器 shortcut.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { context.startActivity(appInfo.intent); } });

    // 将虚拟图标添加到 workspace 中 addInScreenFromBind(shortcut, mScreen, mCellX, mCellY, 1, 1, isWorkspaceLocked()); ```

    上述代码中的 "/path/to/apk" 需要替换为实际 apk 文件的路径。

    1. 编译并运行 Launcher3,虚拟图标将会显示在 workspace 上。当用户点击该图标时,将会启动安装该 apk 的界面。

    请注意,以上解决方案是基于 Launcher3 的源代码进行的。您需要下载 Launcher3 的源代码并进行相应的修改和编译。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^