kann ich setMobileDataEnabled(true) irgendwie ausführen

  • Antworten:6
Benny
  • Forum-Beiträge: 20

16.12.2011, 11:26:35 via Website

Hallo,

ich arbeite gerade an einem Modul für eine apk welches die Option in den Einstellung für die Datenverbindung auf true setzten soll.
Ich habe herausgefunden das die Funktion
1setMobileDataEnabled(true)
in der
1ConnectivityService.Java
das ganze machen würde. Ich hab allerdings keine Ahnung wie ich darauf zugreifen kann.

zur Erklärung muss ich sagen das diese apk nicht für den Market ist, sondern die Bedienung ausgewählter Geräte erleichtert. Die Kunden die dieses Produkt nutzen wissen das ich die Datenverbindung zulassen würde, da sie ohne nicht arbeiten könnten. Also bitte kein Bedenke das hier irgendeine Pfusch oder Hacking apk entstehen könnte :-)

Vielen Dank im voraus

Antworten
Florian B.
  • Forum-Beiträge: 284

16.12.2011, 11:59:53 via Website

Schau dir mal diese Stackoverflow Frage an. Ich denke da geht es genau um das was du machen möchtest.

Antworten
Benny
  • Forum-Beiträge: 20

19.12.2011, 09:46:17 via Website

Hallo,

danke erst einmal für deine Antwort, es stimmt, damit kann ich die Datenverbindung toggeln.
Leider ist das aber nicht das was ich benötige. In meinem Fall geht es darum das der User den Datennetzmodus am Telefon aus versehen deaktiviert. Ich müsste quasi diese Einstellung wieder auf true setzten.

Antworten
Florian B.
  • Forum-Beiträge: 284

19.12.2011, 10:44:02 via Website

Ok, aber wenn du Klasse und Methode eh kennst, warum rufst du sie dann nicht mittels Reflection auf?

Antworten
Benny
  • Forum-Beiträge: 20

19.12.2011, 12:31:12 via Website

Ist eine gute Idee :-) ich habe es auch gerade schon probiert, leider sind meine Java Kenntnisse hier nicht ausreichend, könntest du mir evtl ein bisschen aushelfen ?

Antworten
Florian B.
  • Forum-Beiträge: 284

19.12.2011, 15:00:12 via Website

Also um die Methode aufrufen zu können, benötigst du ein Objekt der Klasse, und das wird vermutlich das Problem werden. Du wirst nicht an ein Objekt des Services ran kommen, ich wüsste zumindest nicht gerade wie.

Solltest du es irgendwie schaffen, dann würdest du die private Methode via Reflection wie folgt aufrufen.

1ConnectivityService service;
2Method m = service.getClass().getDeclaredMethod("setMobileDataEnabled");
3m.setAccessible(true)
4m.invoke(service, new Boolean[]{true});

Wobei die Variable service eben eine Instanze der Klasse ConnectivityService ist.

Antworten
Benny
  • Forum-Beiträge: 20

20.12.2011, 10:25:06 via Website

Okay vielen vielen dank ich versuche das jetzt, wenn ich es schaffe lasse ich es dich/euch wissen

Antworten