在Android Oreo(8.0)的主屏幕上创建应用程序快捷方式

时间:2018-09-24 11:56:02

标签: android xamarin.forms android-appshortcut

我已经创建了Xamarin表单应用程序。我有一个需要安装应用程序的主屏幕上创建应用程序快捷方式的要求。我能够使用以下代码在Android版本低于8.0的设备上创建该快捷方式:

private void AddShortcut()
{
    Intent shortcut = new Intent(Intent.ActionMain);
    shortcut.SetClassName(ApplicationInfo.PackageName, this.LocalClassName);
    Intent intent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
    intent.PutExtra("android.intent.extra.shortcut.NAME", this.Title);//Calc app name as last portion of full package name
    intent.PutExtra("android.intent.extra.shortcut.INTENT", shortcut);
    intent.PutExtra("duplicate", false);
    intent.PutExtra("android.intent.extra.shortcut.ICON_RESOURCE", Intent.ShortcutIconResource.FromContext(this, Resource.Drawable.icon2));
    SendBroadcast(intent);
}

但是对于Android 8.0版来说,相同的代码无法正常工作。在网上进行研究后,我遇到了一个称为Pinned Shortcuts的东西,我使用以下代码实现了它:

private void AddRequestPinShortcut()
        {

                var manager = GetSystemService(Context.ShortcutService) as ShortcutManager;
                var info = new ShortcutInfo.Builder(this, "shortcut-id")
                    .SetShortLabel("Demo")
                    .SetLongLabel("Demo")
                     .SetIcon(Icon.CreateWithResource(this, Resource.Drawable.icon2))
                    .SetIntent(Intent)
                    .Build();
                manager.RequestPinShortcut(info, null);
            }

问题是它弹出了权限对话框,并且没有出现在应用程序前台。我必须单击设备后退按钮以查看权限对话框。

有什么方法可以在Android 8.0中创建普通的应用程序快捷方式(非固定快捷方式)?

如何在前台显示为固定快捷方式显示的权限对话框?我在这里做错什么了吗?

0 个答案:

没有答案