ich eine Klasse für Ihr Interesse an Berechtigungen gemacht PermissionsService
genannt:ActivityCompat.requestPermissions tut nichts an allen
public void getPermission(final String androidManifestPermission, final int mPermissionCode, final String rational) {
if (ContextCompat.checkSelfPermission(mactivity, androidManifestPermission) != PackageManager.PERMISSION_GRANTED) {
Snackbar.make(mLayout, rational, Snackbar.LENGTH_LONG).setAction("OK", new View.OnClickListener() {
@Override
public void onClick(View view) {
ActivityCompat.requestPermissions(mactivity, new String[]{androidManifestPermission}, mPermissionCode);
}
}).show();
} else {
ActivityCompat.requestPermissions(mactivity, new String[]{androidManifestPermission}, mPermissionCode); <------ nothing happens when the flow reaches here
}
}
public static enum PERMISSIONS {
CAMERA_PERMISSION,
GPS_PERMISSION
}
Wenn Flusslinie erreicht ActivityCompat.requestPermissions(mactivity, new String[]{androidManifestPermission}, mPermissionCode);
nichts passiert.
Der Wert von mactivity
MainActivity
ist, ist der Wert von androidManifestPermission
"android.permission.ACCESS_FINE_LOCATION"
.
Ich verstehe nicht, was das Problem ist.
Ich bemerkte etwas ziemlich Interessantes, das verwandt sein kann.
Die Funktion requestPermissions übernimmt eine Aktivität als erstes Argument. Aber der Aufruf onRequestPermissionsResult
, den es ausführt, ist in der Schnittstelle ActivityCompat definiert. OnRequestPermissionsResultCallback
Wie kann das sein? Wie kann die Funktion requestPermissions
den Rückruf onRequestPermissionsResult
in Activity
finden (das erste Argument)?
Vielleicht hängt das mit meinem Problem zusammen?
Ich habe versucht, meine Aktivität implementieren OnRequestPermissionsResultCallback
natürlich. Als ich die Funktion mit @Override
onRequestPermissionsResult
annotierte beschwert sich der Compiler, dass die Funktion onRequestPermissionsResult
(von der Schnittstelle OnRequestPermissionsResultCallback
) eine Oberklasse nicht überschreibt.
Mein Hauptanliegen ist, dass ich das Betriebssystem nicht dazu bringen kann, die Erlaubnis vom Benutzer anzufordern.
Weiß jemand, was das Problem ist?
runOnUIThread
ich wie so requestPermissions
auf dem UIThread versucht läuft (nicht funktioniert):
mactivity.runOnUiThread(new Runnable() {
@Override
public void run() {
ActivityCompat.requestPermissions(mactivity, new String[]{androidManifestPermission}, mPermissionCode);
}
});
Hallo. Ich habe versucht, das 'onRequestPermissionsResult' innerhalb der Aktivität zu überschreiben. Es sagt mir, dass 'Methode Methode von seiner Oberklasse nicht überschreibt' –
Ich kenne das Problem, das ich habe. Danke;) –
Wenn es geholfen hat, vergiss nicht, es als akzeptiert zu markieren. –