Создать ярлык приложения на домашнем экране в Android Oreo(8.0)

Я создал приложение форм 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 ответов

Другие вопросы по тегам