1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Studdi23, 13.05.2012 #1
    Studdi23

    Studdi23 Threadstarter Neuer Benutzer

    Hallo zusammen,

    ich probiere gerade ein kleines Android Tutorial aus und hätte eine Frage zu den Permissions. Und zwar habe ich das NoteList Beispielprojekt importiert und deployed. Zuvor wurde die Manifest Datei etwas modifiziert da ich aus einem anderen Android Projekt heraus auf die Datenbank der NotesList-App schreibend zugreifen möchte und hierzu die XML um eine writePermission erweitert habe. Die Manifest Datei sieht nun folgendermaßen aus (Ausschnitt):
    HTML:
    <provider
                android:name="NotePadProvider"
                android:authorities="com.google.provider.NotePad"
                android:exported="false"
                android:grantUriPermissions="true"
                android:writePermission="com.example.android.notepad.READ_WRITE_NOTES" >
                <grant-uri-permission android:pathPattern=".*" />
            </provider>
    
    Im zweiten Projekt habe ich diese Permission verwendet, um Testdaten in die notes-Tabelle einzufügen.

    HTML:
    <uses-permission android:name="com.example.android.notepad.READ_WRITE_NOTES" />
    
    Code:
    ContentValues values = new ContentValues();
              values.put("title", "New note");
              values.put("note", "This is a new note");
              ContentResolver contentResolver = activity.getContentResolver();
              List<String> ps = contentResolver.insert(Uri.parse("content://com.google.provider.NotePad/notes"), values)
                .getPathSegments();
              Log.i(getClass().getName(), "Inserted new Row with ID: " + ps.get(ps.size() - 1));
    
    Wenn ich die App ausführe (Buttonklick schreibt Daten in die DB) erhalte ich eine SecurityException.
    Es funktioniert lediglich wenn ich das exported flag auf true setze

    HTML:
    android:exported="true"
    
    Dann allerdings werden die Permissions ignoriert was ich nicht möchte. Ich verstehe anscheindend die Bedeutung der permission Attribute nicht ganz bzw. wie sie richtig und sinnvoll eingesetzt werden. Das gilt vor allen Dingen für das Attribut grant-uri-permission. Wäre toll wenn mir das jemand, vielleicht anhand von Beispielen, erklären könnte.

    Gruß
    Mario
     
  2. jna, 13.05.2012 #2
    jna

    jna Ehrenmitglied

  3. Studdi23, 13.05.2012 #3
    Studdi23

    Studdi23 Threadstarter Neuer Benutzer

    Ups, den Forenbereich hab ich wohl übersehen :D
    Kann ich den Beitrag verschieben oder muß ich nen Doppelpost erstellen?
     
  4. jna, 14.05.2012 #4
    jna

    jna Ehrenmitglied

    Ich schlage vor, du meldest den Beitrag (über das Ausrufezeichen) und lässt den verschieben (und dabei diese Posts auch gleich löschen :D)
     
  5. segelfreund, 14.05.2012 #5
    segelfreund

    segelfreund Ehrenmitglied

    Thread verschoben
     
  6. Studdi23, 15.05.2012 #6
    Studdi23

    Studdi23 Threadstarter Neuer Benutzer

    Hallo,

    also ich bin jetzt etwas weiter gekommen. Ich führe nun beide Applikation über den gleichen Prozess aus indem ich beiden Apps die gleiche sharedUserId vergebe. Die SecurityException ist dadurch verschwunden,dafür bekomme ich jetzt aber die Fehlermeldung das es sich um eine readonly Datenbank handelt. Es wurden jedoch sowohl write permission gesetzt als auch Schreibrechte auf Dateiebene vergeben, d.h. mit mit dem Befehl "chmod 777 note_pad.db" Hier der Stacktrace:

    Code:
    05-15 17:36:56.536: I/SqliteDatabaseCpp(567): sqlite returned: error code = 8, msg = statement aborts at 1: [BEGIN IMMEDIATE;] attempt to write a readonly database, db=/data/data/com.example.android.notepad/databases/note_pad.db
    05-15 17:36:56.567: E/SQLiteDatabase(567): Error inserting created=1337103416544 title=New note note=This is a new note modified=1337103416544
    05-15 17:36:56.567: E/SQLiteDatabase(567): android.database.sqlite.SQLiteReadOnlyDatabaseException: attempt to write a readonly database
    ...
    
    Und hier noch die Dateidetails der note_pad.db zur Bestätigung:
    Code:
    -rwxrwxrwx app_40   app_40       4096 2012-05-13 16:02 note_pad.db
    
    Ist denn kein Experte unter euch der mit weiterhelfen kann?

    Gruß
    Mario
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[Offen] Android Layout funktioniert nicht Android App Entwicklung 08.09.2017
[ERLEDIGT] LL zur Laufzeit erstellen, Abstand zwischen LL und LL möglich ? Android App Entwicklung 06.09.2017
[OFFEN] App schließt nach Öffnen sofort Android App Entwicklung 04.09.2017
[OFFEN] Frage zum Einsatz von Qualifiers für die dimens.xml Android App Entwicklung 30.08.2017
[ERLEDIGT] Fragen zur Play Developer Console, wie Steuern etc. Android App Entwicklung 29.08.2017
[ERLEDIGT] Um einen Zusatz in einem Programm unter Android zu machen Android App Entwicklung 22.08.2017
[GESCHLOSSEN] Random ListItem ausgeben funktioniert nicht mehr Android App Entwicklung 13.08.2017
[OFFEN] Bild per Intent an ListView übergeben und anzeigen Android App Entwicklung 13.08.2017
[OFFEN] SVN Commit in Android Studio funktioniert nicht mehr Android App Entwicklung 07.08.2017
[ERLEDIGT] Android Studio Erste App-Programmierung Android App Entwicklung 02.08.2017
Du betrachtest das Thema "Anfänger Frage zu Android Permissions" im Forum "Android App Entwicklung",