2012-04-05 8 views
0

Ich entwickle mehrere AudioEffect-Unterklassen, die in Android 4.0.3 ICS kompiliert werden ... Ich versuche, rohe PCM-Daten in Dateien zu dumpen, aber da die AudioEffects im Kontext des Mediaserver-Prozesses laufen, scheint es keine Datei zu geben Schreibberechtigungen verfügbar.wie man Android Mediaserver Datei Schreibberechtigung gewähren?

fopen("/data/local/tmp/pcm_in.pcm", "w"); 

gibt einen Nullzeiger und errno 13 (Berechtigung verweigert) zurück.

Irgendwelche Ideen, wie ich Mediaserver diese Erlaubnis gewähren kann, oder schreibe in einen Ordner, auf den ich zugreifen kann? Ich kompiliere das Betriebssystem, also alles geht ...

Genauer gesagt: Wie werden Berechtigungen für diese nativen/Systemdienste bestimmt? Ich nehme an, sie haben keine AndroidManifest.xml ...

Antwort

0

Ich vermute, das Problem ist, dass Sie keine Berechtigungen zum Erstellen einer Datei unter /data/local/tmp haben. In der Tat bin ich nicht einmal sicher, ob das Verzeichnis auf Android existiert.

Stattdessen sollten Sie entweder den privaten Speicher für eine App verwenden oder die Dateien auf der SD-Karte speichern. Sehen Sie dies für weitere Informationen: http://developer.android.com/guide/topics/data/data-storage.html

+0

AudioEffects im Mediaserver-Prozess ausgeführt, und das ist native C-Code, so dass ich bin nur Mediaserver Berechtigungen zu erteilen * überall * zu schreiben, nahm ich die tmp-Ordner zur Verfügung stehen würden, und es in der Tat existieren. – yano

+0

@yano 'so ich bin nur auf der Suche nach mediaserver Berechtigungen überall zu schreiben' ohne root das ist einfach nicht möglich, tut mir leid – slayton

+0

mein Telefon ist ein Entwicklungstelefon, so dass ich Root-Zugang habe. Ich habe versucht, init.rc zu bearbeiten, um es als root auszuführen, aber aus irgendeinem Grund wurde es immer wieder auf den "media" -Benutzer zurückgesetzt. – yano

Verwandte Themen