Reno Krohmann
- Forum-Beiträge: 8
13.04.2011, 16:38:25 via Website
13.04.2011 16:38:25 via Website
Hallo alle zusammen,
ich habe da ein Problem mit den Dateirechten. Ich habe eine App geschrieben die ihre Arbeit so weit auch ganz annehmbar verrichtet. Über einen Button wird eine weitere völlig externe, unabhängige App gestartet. Dabei handelt es sich um eine offline Navigation. Ist ja relativ einfach gemacht über:
Ok so weit so gut. Nun bin ich mit meiner App in der Lage der Navi App gewissen Befehle zu übermitteln. (Fahre nach dort oder setze diesen POI usw.) Dazu hat die NaviApp einen Ordner frei gegeben in dem sie einfache Textdateien in einem speziellen Format erwartet. Erstellen und speichern der Dateien ist kein Problem. Die Dateien werden mit dem geforderten Inhalt am richtigen Ort angelegt. Nur leider kann die Navi App meine Dateien nicht lesen weil sie nicht über die richtigen Rechte verfügt. Lege ich die Dateien auf folgendem Weg an
Wird die Datei mit dem richtigen Inhalt an die richtige Stelle gelegt. Nehme ich aber die Kommentare vor den read/write Berechtigungen raus fliegt mir sofort meine App um die Ohren. Ich habe diesbezüglich auch andere Wege probiert wie z.B.
Auch hier fliegt mir meine App um die Ohren weil ich explizite Rechte vergeben will. Der Ordner liegt direkt unterm root welches ich mir über android.os.Environment.getExternalStorageDirectory(); hole. Die Ordnerstruktur ist nicht durch mich oder meine App angelegt sonder durch die NaviApp. Hat jemand eine Idee wie ich die Rechte so vergeben kann, dass die NaviApp auf die von mir geschriebenen Dateien zugreifen kann. Die müssen sowohl lesen/schreiben können aber das Ding auch löschen können nachdem die entsprechenden Aktionen ausgeführt sind.
Vielen Dank schon mal im Voraus
Reno
ich habe da ein Problem mit den Dateirechten. Ich habe eine App geschrieben die ihre Arbeit so weit auch ganz annehmbar verrichtet. Über einen Button wird eine weitere völlig externe, unabhängige App gestartet. Dabei handelt es sich um eine offline Navigation. Ist ja relativ einfach gemacht über:
1i.setClassName( "package", "package.Activity");
2 startActivity(i);
2 startActivity(i);
Ok so weit so gut. Nun bin ich mit meiner App in der Lage der Navi App gewissen Befehle zu übermitteln. (Fahre nach dort oder setze diesen POI usw.) Dazu hat die NaviApp einen Ordner frei gegeben in dem sie einfache Textdateien in einem speziellen Format erwartet. Erstellen und speichern der Dateien ist kein Problem. Die Dateien werden mit dem geforderten Inhalt am richtigen Ort angelegt. Nur leider kann die Navi App meine Dateien nicht lesen weil sie nicht über die richtigen Rechte verfügt. Lege ich die Dateien auf folgendem Weg an
1String lineSep = System.getProperty("line.separator");
2File fi = new File(dir + "/Drive/sdk/cmd.5.in");
3 * // fi.setReadable(true, false); // fi.setWritable(true,
4 * false);
5 f = new PrintStream(dir + "/Drive/sdk/cmd.5.in");
6
7 f.println(); f.append("[Head]" + lineSep); f.append("Type=5"
8 + lineSep);
9
10 f.flush(); f.close();
2File fi = new File(dir + "/Drive/sdk/cmd.5.in");
3 * // fi.setReadable(true, false); // fi.setWritable(true,
4 * false);
5 f = new PrintStream(dir + "/Drive/sdk/cmd.5.in");
6
7 f.println(); f.append("[Head]" + lineSep); f.append("Type=5"
8 + lineSep);
9
10 f.flush(); f.close();
Wird die Datei mit dem richtigen Inhalt an die richtige Stelle gelegt. Nehme ich aber die Kommentare vor den read/write Berechtigungen raus fliegt mir sofort meine App um die Ohren. Ich habe diesbezüglich auch andere Wege probiert wie z.B.
1FileOutputStream f = c.openFileOutput(dir + "/Drive/sdk/cmd.5.in", Context.MODE_WORLD_READABLE);
2
3 PrintWriter pw = new PrintWriter(f);
4 pw.println("Howdy do to you.");
5 pw.println("Here is a second line.");
6 pw.flush();
7 pw.close();
8 f.close();
2
3 PrintWriter pw = new PrintWriter(f);
4 pw.println("Howdy do to you.");
5 pw.println("Here is a second line.");
6 pw.flush();
7 pw.close();
8 f.close();
Auch hier fliegt mir meine App um die Ohren weil ich explizite Rechte vergeben will. Der Ordner liegt direkt unterm root welches ich mir über android.os.Environment.getExternalStorageDirectory(); hole. Die Ordnerstruktur ist nicht durch mich oder meine App angelegt sonder durch die NaviApp. Hat jemand eine Idee wie ich die Rechte so vergeben kann, dass die NaviApp auf die von mir geschriebenen Dateien zugreifen kann. Die müssen sowohl lesen/schreiben können aber das Ding auch löschen können nachdem die entsprechenden Aktionen ausgeführt sind.
Vielen Dank schon mal im Voraus
Reno
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.