为了账号安全,请及时绑定邮箱和手机立即绑定

快捷方式添加到 Android 主屏幕

快捷方式添加到 Android 主屏幕

慕姐8265434 2021-12-01 19:06:11
我怎样才能做一些类似于 Telegram 和许多其他应用程序的事情,它允许您在这种情况下通过电报添加一个元素是一个联系人,如果点击它会打开联系人聊天窗口。我想做这样的事情,在home中添加一个元素,如果你点击它,允许你做某个操作。但是我必须在我的外部打开一个应用程序。编辑:单击主屏幕上的链接时必须调用的意图,str 名称连接元素。Intent appIntent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://instagram.com/_u/"+str));appIntent.setPackage("com.instagram.android");Intent webIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://instagram.com/"+str)); try {     startActivity(appIntent);} catch (ActivityNotFoundException ex) {    startActivity(webIntent);}编辑2:添加:<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />代码:if (ShortcutManagerCompat.isRequestPinShortcutSupported(getBaseContext())) {Intent instagramIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://instagram.com/_u/" + str));instagramIntent.setPackage("com.instagram.android");Bitmap bmp = getCroppedBitmap(bitmap);final IconCompat icon = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) ? IconCompat.createWithAdaptiveBitmap(bmp) : IconCompat.createWithBitmap(bmp);final ShortcutInfoCompat shortcut = new ShortcutInfoCompat.Builder(getBaseContext(), UUID.randomUUID().toString())                        .setShortLabel(str)                        .setLongLabel(str)                        .setIcon(icon)                        .setIntent(instagramIntent)                        .build();ShortcutManagerCompat.requestPinShortcut(getBaseContext(), shortcut, null);            }
查看完整描述

2 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

如果我理解正确,您想从应用程序创建的快捷方式启动应用程序。然后你可以做这样的事情:


public void createShortCut{

    Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");

    shortcutintent.putExtra("duplicate", false);

    shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.shortcutname));

    Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext, R.drawable.icon);

    shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);

    shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent("com.whatsapp"));

    sendBroadcast(shortcutintent);

}

检查这个

编辑 :


这是使用 ShortcutManagerCompat 的最佳方法:


fun createShortCut(){

    val str= ""

    val uri = Uri.parse("http://instagram.com/_u/"+str)

    val instagramIntent = Intent(Intent.ACTION_VIEW,uri)

    instagramIntent.setPackage("com.instagram.android")

    val icon = IconCompat.createWithResource(this,R.drawable.ic_launcher_background)

    val pinShortcutInfo = ShortcutInfoCompat.Builder(this, "shortcutID")

                .setIcon(icon)

                .setShortLabel("MyShortcut")

                .setIntent(instagramIntent)

                .build()

    ShortcutManagerCompat.requestPinShortcut(this,pinShortcutInfo,null)

}


查看完整回答
反对 回复 2021-12-01
?
慕的地10843

TA贡献1785条经验 获得超8个赞

不确定我是否理解你想要完成的任务,但这里是。在您的清单中,您可以添加这样的代码


<activity

    android:name=".activityName"

    android:screenOrientation="sensorLandscape">

        <intent-filter>

        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />

        </intent-filter>

    </activity>

意图过滤器 action.Main 可以从主屏幕启动您的活动。因此,只需将该过滤器添加到您要放在主屏幕上的活动中即可。


查看完整回答
反对 回复 2021-12-01
  • 2 回答
  • 0 关注
  • 257 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信