Hallo,
ich habe mir ein Nexus 7 2013 zum programmieren gekauft. Nun möchte ich "Hallo Welt" in einer Textdatei, im Ordner Documents, schreiben und den Text aus der Datei wieder auslesen und anzeigen.
Mein bisheriger versuch sieht so aus:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
public void MB(CharSequence text) {
Toast.makeText(this, text, Toast.LENGTH_LONG).show();
Log.d("Message", text.toString());
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.e("Message", "Log Start...");
MB(Environment.isExternalStorageEmulated() ? "true" : "false");
MB(Environment.getExternalStorageState());
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
MB(path.toString());
path.mkdir();
MB(path.isDirectory() ? "true" : "false");
File file = new File(path, "test.txt");
MB(file.toString());
try {
OutputStream os = new FileOutputStream(file);
String s = "hallo du da";
os.write(s.getBytes());
os.close();
} catch (FileNotFoundException e) {
MB(e.toString());
} catch (IOException e) {
MB(e.toString());
}
try {
InputStream is = new FileInputStream(file);
StringBuilder builder = new StringBuilder();
int ch;
while((ch = is.read()) != -1){
builder.append((char)ch);
}
MB(builder.toString());
is.close();
} catch (IOException e) {
e.printStackTrace();
}
Log.e("Message", "Log End");
}
|
Das klappt so weit.
Nun zum Problem:
Wenn ich das Tablet mit meinen PC, per USB, verbunden habe, finde ich die Datei mit dem Windows Explorer nicht auf dem Tablet. Es existiert auch kein Ordner Dokuments. Ich vermute das hängt damit zusammen das es keine externe Speicherkarte gibt. Das Nexus hat auch keinen Slot dafür und diese Funktionalität wird irgendwie emuliert. Was auch Environment.isExternalStorageEmulated() mit dem Rückgabewert true bestätigt. Ein anderes Spiel aus dem PlayStore kann aber im Ordner Picture ein Screenshot speichern, was ich mir auf meinem PC ansehen kann.
Im Manifest stehen auch die zeilen:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
um überhaubt Lese- und Schreibrechte für die App zu bekommen.
Nun weiss ich nicht mehr weiter.
Ziel des ganzen ist es, dass ich Dateien zwischen Tablet App und PC tauschen kann.
Ich hoffe ihr könnt mir helfen.
Hannes