Anfänger Frage zu Android Permissions

  • 5 Antworten
  • Letztes Antwortdatum
S

Studdi23

Neues Mitglied
0
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
 
Ups, den Forenbereich hab ich wohl übersehen :D
Kann ich den Beitrag verschieben oder muß ich nen Doppelpost erstellen?
 
Ich schlage vor, du meldest den Beitrag (über das Ausrufezeichen) und lässt den verschieben (und dabei diese Posts auch gleich löschen :D)
 
Thread verschoben
 
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
 

Ähnliche Themen

M
Antworten
9
Aufrufe
750
mkuz24
M
D
Antworten
4
Aufrufe
430
Appento
Appento
M
Antworten
21
Aufrufe
1.225
swa00
swa00
Mr-Fisch
Antworten
5
Aufrufe
922
migi01
migi01
Mr-Fisch
Antworten
8
Aufrufe
969
Mr-Fisch
Mr-Fisch
Zurück
Oben Unten