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):
Im zweiten Projekt habe ich diese Permission verwendet, um Testdaten in die notes-Tabelle einzufügen.
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
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
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>
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));
Es funktioniert lediglich wenn ich das exported flag auf true setze
HTML:
android:exported="true"
Gruß
Mario