如何为桌面上的任何应用程序创建快捷方式?

发布于 2024-11-17 03:24:09 字数 1100 浏览 3 评论 0原文

我想我已经尝试了在互联网上找到的所有解决方案,但没有一个有效 - 没有强制关闭,但桌面上没有出现任何内容。

现在,我有这个:

private void createShortcutOnDesktop(Application app) {

    Intent shortcutIntent = new Intent();
    shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, app.getIntentShortcut());
    shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, app.getName());
    shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(context, R.drawable.home_button));
    shortcutIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
    this.sendBroadcast(shortcutIntent);
    finish();

}

app.getIntentShortcut()

public Intent getIntentShortcut() { 

    Intent i = new Intent();
    i.setClassName(packageName, name);
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    return i;
}

AndroidManifest.xml 文件中:

<permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>

我缺少什么?谢谢。

I think I've tried all the solutions I found on the internet, but no one worked - no force close, but nothing appears on desktop.

Now, I have this:

private void createShortcutOnDesktop(Application app) {

    Intent shortcutIntent = new Intent();
    shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, app.getIntentShortcut());
    shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, app.getName());
    shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(context, R.drawable.home_button));
    shortcutIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
    this.sendBroadcast(shortcutIntent);
    finish();

}

The app.getIntentShortcut():

public Intent getIntentShortcut() { 

    Intent i = new Intent();
    i.setClassName(packageName, name);
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    return i;
}

And in the AndroidManifest.xml file:

<permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>

What am I missing? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

花辞树 2024-11-24 03:24:09

解决了。只需将清单:

this:

<permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>

更改为this:

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>

只是一个“使用” ←

Solved. Just change at manifest:

this:

<permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>

to this:

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>

Just an 'uses' ¬¬

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文