Permissions Api Level 22 und höher

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Permissions Api Level 22 und höher

    Hallo Forum,

    ich bin neu in Java und Android. Ich habe eine App geschrieben, in der ich über eine php-Api mehrere Dinge in eine db eintrage bzw. auslese.
    Damit ich kein Logoin-System brauche, den User aber (auch auf ggf. mehreren Devices) wiedererkenne, lese ich den Google-Nutzernamen aus.
    Das hat auf meinem Handy mit Api < Level 23 gut funktioniert.

    Mein Tablet hat aber eine Api-Level > 23, damit crashe ich dann gleich zu Begin die App, weil ^mien User-auslesen-Code nicht funktioniert.

    Ich habe nun 2 Fragen:

    1) Damit es auf beiden Api-Levels läuft, reicht muss ich dann eine "Weiche" bauen, die zwischen den Api-Levels unterscheidet oder würde der Code für Api Level > 23 auch abwärtskompatibel arbeiten?

    2) Was muss ich hier umbauen, damit der Code auf Api-Level >=23 auch läuft?
    Ich erhalte die Fehlermeldung:

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapp/com.example.myapp.MainActivity}: java.lang.NullPointerException: Attempt to read from field 'java.lang.String android.accounts.Account.name' on a null object reference at android.ativityThread$H.handleMessage(ActivityThread.java:1578) at android.os.Handler.dispatchMessage(Handler.java:105)
    ...
    Caused by: java.lang.NullPointerException: Attempt to read from field 'java.lang.String android.accounts.Account.name' on a null object reference

    Quellcode

    1. // Google-Account Informations
    2. Context context = this;
    3. Account account = getAccount(AccountManager.get(context));
    4. String accountName = account.name;
    5. Log.d("DEBUG", "Acountname = " + accountName );

    Danke für Eure Hilfe im Voraus,

    Lucky