2017-05-18 4 views
0

ich Cordova Plugin für Android erstellt haben, und ich habe eine Datei im src Ordner abgelegt:Benutzerdefinierte cordova Plugin - Get Pfad zur Datei

plugin.xml

<source-file src="myfile.ext" target-dir="src/com/example"/> 

I auch kann (in Android Studio) sehen, dass die Datei erfolgreich im src Ordner hinzugefügt wurde:

android 
|-- /src 
     |-- com 
      |-- example 
       |-- myfile.ext 
       |-- MyPlugin.java 

Jetzt muß ich den Pfad zu diesem erhalten können, Datei in MyPlugin.java, aber ich habe keine Ahnung, wie das geht. Kann mir jemand dabei helfen? Vielen Dank!

Antwort

0

Bevor Sie Ihre Frage aktualisiert, es war richtig - sollten Sie die Asset-Datei auf "Assets" nicht "src" kopieren:

<source-file src="myfile.ext" target-dir="assets"/> 

Dann können Sie es über die AssetManager Referenz:

AssetManager assetManager = this.cordova.getActivity().getAssets(); 
InputStream inputStream = assetManager.open("myfile.ext"); 

In Bezug auf den "Pfad" zur Datei werden Assets im APK anders gespeichert als in Ihrem Android-Projekt. Der "Pfad" zu Ihrer Datei wäre also file:///android_asset/myfile.ext, aber Sie würden ihn wahrscheinlich nicht referenzieren so von MyPlugin.java.

+0

Danke für Ihre Antwort @DaveAlden, ich brauche wirklich den "Pfad", weil ich das als Eingabe für einen API-Aufruf brauche. Wie auch immer, es funktioniert leider nicht .. wenn ich 'neue Datei versuche (" file: ///android_asset/myfile.ext ") .exists()' gibt es 'false' zurück. Auch 'neue Datei (" file: /// android_asset/") .exists()' gibt 'false' zurück. Irgendeine Idee warum? (Ich habe die Datei wieder unter dem Ordner 'assets' hinzugefügt) – user3050534

+0

' Datei file = new File ("// android_asset/myfile.ext"); Uri uri = Uri.fromFile (Datei); ' – DaveAlden

+0

Immer noch kein Glück, die 'uri' ist genau das gleiche wie' file: /// android_asset/myfile.ext' und wird 'false' zurückgeben, wenn sie versucht, 'neue Datei' zu machen (uri.toString) .exists() '. Grund Ich mache eine 'neue Datei()' und überprüfe, ob es existiert, weil die API das auch tut. Andere Vorschläge? Grund Ich habe meinen ursprünglichen Beitrag editiert, um die Datei vielleicht in den gleichen Ordner (src) zu legen, wie die Java-Datei war, so dass es potentiell einfacher sein könnte, den Pfad zu bekommen. Wenn das möglich/einfacher ist, was wäre der Weg? – user3050534

Verwandte Themen