App funktioniert auf virtual device aber nicht auf richtigem device

  • Antworten:0
Nussi
  • Forum-Beiträge: 3

27.10.2012, 07:11:49 via Website

Hallo zusammen,
ich bin noch relativ neu in dem Bereich App Entwicklung und probiere mich gerade an meiner ersten App. Bis jetzt ist es auch ganz gut gelaufen. Im Prinzip soll die App einfach nur alle Kontaktdaten auslesen, diese in eine xml-Datei schreiben welche im internen Speicher abgelegt wird und diese Datei dann zu einem Server schicken wo sie weiterverarbeitet wird.
Die ersten 2 Punkte funktionieren auch wunderbar - Allerdings nur auf den Virtual Devices von Android 4.1 bis 2.2.
Jetzt wollte ich das ganze mal auf echten Smartphones ausprobieren. Installieren und starten funktioniert einwandfrei.
Auf dem ersten Device mit Android 4.0 schreibt es auch die Datei aber diese ist leer.
Auf dem zweiten Device mit Android 2.3 wird die Datei glaub ich nicht geschrieben. Ich hätte probiert mit AndroXplorer zu suchen aber sie scheint nirgends auf.
Kann mir jemand vielleicht Tipps geben wie ich strukturiert an die Lösung des Problems herangehen kann. Was kann ich denn versuchen bzw. woran kann es liegen?

Hier noch eine abgespeckte Version von meinen Code.

1public class MainActivity extends Activity {
2
3@Override
4public void onCreate(Bundle savedInstanceState) {
5 super.onCreate(savedInstanceState);
6 setContentView(R.layout.activity_main);
7
8 // Create new file
9 File newxmlfile = new File(this.getFilesDir(), "newcontacts3.xml");
10 try {
11 newxmlfile.createNewFile();
12 } catch (IOException e) {
13 Log.e("IOException", "Exception in create new File(");
14 }
15 FileOutputStream fileos = null;
16 try {
17 fileos = new FileOutputStream(newxmlfile);
18
19 } catch (FileNotFoundException e) {
20 Log.e("FileNotFoundException", e.toString());
21 }
22 XmlSerializer serializer = Xml.newSerializer();
23 try {
24 serializer.setOutput(fileos, "UTF-8");
25 serializer.startDocument(null, Boolean.valueOf(true));
26
27 serializer.startTag(null, "root");
28
29 ContentResolver cr = getContentResolver();
30 Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI,
31 null, null, null, null);
32 if (cursor.getCount() > 0) {
33 while (cursor.moveToNext()) {
34
35 String id = cursor.getString(cursor
36 .getColumnIndex(ContactsContract.Contacts._ID));
37
38 serializer.startTag(null, "ContactID");
39 serializer.attribute(null, "ID", id);
40
41 // GET ALL THE CONTACT DATA AND WRITE IT IN THE FILE
42
43 serializer.endTag(null, "ContactID");
44 }
45 }
46 cursor.close();
47
48 serializer.endTag(null, "root");
49 serializer.endDocument();
50 serializer.flush();
51 fileos.close();
52
53 } catch (Exception e) {
54 Log.e("Exception", "Exception occured in wroting");
55 }
56
57}
58
59@Override
60public boolean onCreateOptionsMenu(Menu menu) {
61 getMenuInflater().inflate(R.menu.activity_main, menu);
62 return true;
63}
64}

Im Manifest hab ich die permissions für Internet und für Read Data drinnen

— geändert am 27.10.2012, 10:29:55

Antworten