Es gibt einige Dinge, die Sie überprüfen können:
Haben Sie initNueraConnection() und fetchPermissions() wie in der Neura dev site beschrieben deklariert?
Wenn ja, vermute ich, dass Sie authenticate (...) eine nullable mAuthenticateRequest-Instanz senden. Da fetchPermissions() asynchron ist (ein Netzwerkaufruf), rufen Sie authenticate (...) auf, bevor die Ergebnisse von fetchPermissions() abgerufen werden. Daher ist mAuthenticateRequest null, da sie noch nicht initiiert wurde. Sie sollten authenticate (...) erst aufrufen, nachdem Sie die Daten von fetchPermissions() erhalten haben.
Zum Beispiel können Sie dies tun:
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getMainActivity().initNeuraConnection();
fetchPermissions();
}
private void fetchPermissions() {
loadProgress(true);
getMainActivity().getClient().getAppPermissions(new GetPermissionsRequestCallbacks() {
@Override
public void onSuccess(final List<Permission> permissions) throws RemoteException {
if (getActivity() == null)
return;
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
loadProgress(false);
mPermissions = new ArrayList<>(permissions);
mAuthenticateRequest = new AuthenticationRequest();
mAuthenticateRequest.setAppId(getMainActivity().getClient().getAppUid());
mAuthenticateRequest.setAppSecret(getMainActivity().getClient().getAppSecret());
mAuthenticateRequest.setPermissions(mPermissions);
getMainActivity().getClient().authenticate(NEURA_AUTHENTICATION_REQUEST_CODE, mAuthenticateRequest);
}
});
}
@Override
public void onFailure(Bundle resultData, int errorCode) throws RemoteException {
loadProgress(false);
mRequestPermissions.setEnabled(true);
}
@Override
public IBinder asBinder() {
return null;
}
});
}
Fyi, können Sie Ihre logcat für diesen Fehler überprüfen: authenticationRequest NULL sein kann, konnte nicht beglaubigen Anfrage erstellen.
Sie haben Recht! Das war mein Fehler, und mit dem Aufruf zur Authentifizierung nach Erhalt der App-Berechtigungen funktionierte es. –