2016-04-27 8 views
3

Ich entwickle eine Android-App mit Xamarin und MVVMCross. Für Android 6.0 ist es mir gelungen, Laufzeitberechtigungen zu stellen, es funktioniert gut, aber ich habe keinen Zugriff auf meinen MainActivity-Code, also weiß ich nicht, wie ich den onRequestPermissionsResult-Callback überschreiben kann, hat jemand eine Ahnung, wie das geht?Xamarin android So überschreiben onRequestPermissionsResult

Danke

+0

Alexander Ich habe das gleiche Problem, hast du es zu lösen? –

+0

Ich frage mich auch, ob einer von euch eine Antwort gefunden hat. Ich benutze 'Plugin.Permissions', aber keine Xamarin Forms. Nur "native" Android in Xamarin. Haben Sie eine Aktivität gefunden, die mit der von Ihnen gewünschten Methode überschrieben werden kann? – clay

Antwort

2

Sie können die aktuelle Activity Zugriff auf die ActivityLifecycleCallbacks

James Montemagno mit hat sich die API-Aufrufe in einer seiner Xamarin.Plugins gewickelt Tun Sie ein paar kleinere Einstellungen und dann haben Sie Zugriff auf die Activity über die CrossCurrentActivity.Current Eigenschaft.

public override void OnCreate() { base.OnCreate(); 
    RegisterActivityLifecycleCallbacks(this); 
} 

public override void OnTerminate() { 
    base.OnTerminate(); 
    UnregisterActivityLifecycleCallbacks(this); 
} 

public void OnActivityCreated(Activity activity, Bundle savedInstanceState) { 
    CrossCurrentActivity.Current.Activity = activity; 
} 

public void OnActivityResumed(Activity activity) { 
    CrossCurrentActivity.Current.Activity = activity; 
} 

Google Text & Tabellen: Application.ActivityLifecycleCallbacks

0

Nach @Evk answer:

Höchstwahrscheinlich werden Sie verwenden falsche Permission Typ (es gibt mehrere Arten Permission in einem anderen Namensraum genannt). Versuchen Sie dies:

class Aplication : Android.App.Activity, 
    Android.Support.V4.App.ActivityCompat.IOnRequestPermissionsResultCallback { 

    public override async void OnRequestPermissionsResult(
     int requestCode, 
     string[] permissions, 
     Android.Content.PM.Permission[] grantResults 
    ) { 
    } 
} 
Verwandte Themen