Powiadomienie z dwoma przyciskami (akcjami). Które radzę sobie z:

    public class NotificationActionHandler : BroadcastReceiver
{
    public override void OnReceive(Context context, Intent intent)
}

Cel: Użytkownik odblokowania urządzenia przed pozostawieniem przycisków. Próbowałem czegoś, ale pozwoli nacisnąć przycisk

Jak mogę to rozwiązać? Próbowałem tego: Jak Poproś użytkownika, aby odblokować urządzenie na kliknięcie działania powiadomień w Androidzie?.

0
User3423523 21 luty 2019, 13:38

2 odpowiedzi

Najlepsza odpowiedź

Zgadzam się z Hakimem, czy możesz podać więcej informacji na ten temat? Jeśli nie wiesz, jak dokonać zwrotu pieniędzy dla funkcji {X0}}. Możesz utworzyć nową KeyguardDismissCallback jak poniższy kod.

 km.RequestDismissKeyguard(this, new MyKeyguardDismissCallback());


 public class MyKeyguardDismissCallback : KeyguardDismissCallback
    {
        public override void OnDismissError()
        {
            base.OnDismissError();
        }

        public override void OnDismissSucceeded()
        {
            base.OnDismissSucceeded();
        }

        public override void OnDismissCancelled()
        {
            base.OnDismissCancelled();
        }
    }

Jeśli nie wiesz, jak uzyskać aktywność w odbiorcy transmisji. Możesz użyć tego Xamarin.Android wtyczki, aby wyświetlić bieżącą aktywność.

var activity = Plugin.CurrentActivity.CrossCurrentActivity.Current.Activity;

1
FreakyAli 22 luty 2019, 11:35

Nie byłem w stanie prawidłowo zrozumieć Twoje pytanie, ponieważ jest to trochę niejednoznaczny, więc zamierzam założyć, że nie możesz przekonwertować kodu i zrobię to dla Ciebie:

Dla API> = 26

KeyguardManager km = (KeyguardManager)GetSystemService(Context.KeyguardService);
km.RequestDismissKeyguard(this, null); // you may add callback listener here

Dla API <26

Window.AddFlags(WindowManagerFlags.DismissKeyguard);

Lub użyć intencji aktywności w oczekującej intencji zamiast usługi w swoim powiadomieniu oczekujące na intencję w usłudze powiadomień:

 Intent intent = new Intent(Context, typeof(YourActivity));
 intent.PutExtra(key, "my_value"); //Used to send information to action class
 PendingIntent pi = PendingIntent.GetActivity(Context, 0, intent,
                                         PendingIntentFlags.UpdateCurrent);
1
FreakyAli 21 luty 2019, 14:05