2017-03-13 4 views
2

Ich habe mit Android-App mit JavaFx (mit JavaFxPorts und Gluon-Mobile) gearbeitet.
Ich habe ConnectivityService.class verwendet, um zu überprüfen, ob das Gerät mit dem Netzwerk verbunden ist.
Aber die nächste Sache, die ich tun muss, ist programmgesteuert das Wifi des Gerätes ein-/auszuschalten.
Wie implementiere ich das mit Gluon-Mobile-APIs.Aktivieren Sie Wifi in Android programmgesteuert mit Gluon-Mobile-APIs

+0

Sie können nicht, android wird nicht zulassen, Wi-Fi-Programme ändern/Aus-Zustand, das Beste, was Sie ist, den Benutzer, damit sie sagen, tun kann. – Zharf

+0

Eigentlich können Sie bro. Dann wie shareit funktioniert! –

+0

huh, anscheinend so, scheint jedoch eine schreckliche Idee, aber es gibt einige Antworten auf SO darüber http://StackOverflow.com/A/3931094/857853 ... Sie müssen nur herausfinden, wie man das in Gluon übersetzt - mobile ... – Zharf

Antwort

1

Hallo ist nicht vertraut mit Gluon aber wenn Ihr Java verwenden, können Sie diese Methode verwenden:

In der Manifest-Datei die folgenden Berechtigungen hinzu:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> 

Sie können dann prüfen, ob WiFi durch aktiviert ist ein Boolean So:

boolean wifiEnabled = wifiManager.isWifiEnabled() 

und ihren Zustand ändern durch kann finaly:

WifiManager wifiManager = (WifiManager) 
`this.getSystemService(Context.WIFI_SERVICE);` 
wifiManager.setWifiEnabled(true); 
wifiManager.setWifiEnabled(false); 

hoffe das hilft

+0

Tut mir leid, Bro Ich habe diese Lösung von [dieser] (http://stackoverflow.com/questions/8863509/how-to-programmatic-turn-off-wifi-on-android-device#) Before.But I can ' t Android-APIs in meinem Projekt verwenden. –

+1

Ja, Sie können. Überprüfen Sie den Quellcode der Gluon-Charm-down-Bibliothek. Es würde dir die Idee geben. Wie auch immer, du kannst einfach die notwendige Bibliothek zu deinen Abhängigkeiten hinzufügen und bekommst Zugriff auf die FXActivity, von der du darauf zugreifen kannst. Ich werde später versuchen, eine vollständige Antwort zu erstellen, wenn Sie möchten. – dzim

+0

tolle Arbeit @ dzim –

2

So. Um Zugriff auf die FXActivity (über FXActivity.getActivity()) zu erhalten, müssen Sie Ihre Gradle-Datei nur geringfügig aktualisieren.

Hier ist, wie meine Datei sieht aus wie

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'org.javafxports:jfxmobile-plugin:1.3.5' 
    } 
} 

apply plugin: 'org.javafxports.jfxmobile' 

compileJava.options.encoding = 'UTF-8' 

tasks.withType(JavaCompile) { 
    options.encoding = 'UTF-8' 
} 

repositories { 
    jcenter() 
    maven { 
     url 'http://nexus.gluonhq.com/nexus/content/repositories/releases' 
    } 
} 

mainClassName = 'ch.cnlab.disentis.Main' 
// preloaderClassName = 'ch.cnlab.disentis.Preloader' 

dependencies { 

    compile 'com.gluonhq:charm:4.3.1' 
    compile 'org.controlsfx:controlsfx:8.40.12' 

    compileNoRetrolambda 'com.airhacks:afterburner.mfx:1.6.2' 

    compile 'de.jensd:fontawesomefx-commons:8.15' 
    compile 'de.jensd:fontawesomefx-fontawesome:4.7.0-5' 
    compile 'de.jensd:fontawesomefx-materialdesignfont:1.7.22-4' 
    compile 'de.jensd:fontawesomefx-materialicons:2.2.0-5' 
    compile 'de.jensd:fontawesomefx-controls:8.15' 

    compile 'com.fasterxml.jackson.core:jackson-databind:2.8.4' 

    compile 'commons-codec:commons-codec:1.10' 

    androidCompile files("$System.env.ANDROID_HOME/platforms/android-22/android.jar") 
    androidCompile files("$System.env.ANDROID_HOME/extras/android/support/v4/android-support-v4.jar") 

    compile 'org.javafxports:jfxdvk:8.60.9' 
    androidRuntime 'org.javafxports:jfxdvk:8.60.9' 
} 

jfxmobile { 
    downConfig { 
     plugins 'display', 'lifecycle', 'storage', 'orientation', 'settings', 'browser', 'ble' 
    } 
    android { 
     manifest = 'src/android/AndroidManifest.xml' 
     compileSdkVersion = 22 
     minSdkVersion = 19 
     targetSdkVersion = 22 
     dexOptions { 
      javaMaxHeapSize '2g' 
     } 
     packagingOptions { 
      pickFirst 'META-INF/LICENSE' 
      pickFirst 'META-INF/NOTICE' 
      pickFirst 'license/LICENSE.txt' 
     } 
     signingConfig { 
      storeFile file('signing/android/my-release-key.keystore') 
      File propsFile = file('signing/android/keystore.properties'); 
      if (propsFile.exists()) { 
       Properties props = new Properties(); 
       props.load(new FileInputStream(propsFile)) 
       storePassword props.getProperty('RELEASE_STORE_PASSWORD') 
       keyAlias props.getProperty('RELEASE_KEY_ALIAS') 
       keyPassword props.getProperty('RELEASE_KEY_PASSWORD') 
      } 
     } 
    } 
    ios { 
     infoPList = file('src/ios/Default-Info.plist') 
     forceLinkClasses = [ 
       'com.gluonhq.**.*', 
       'de.jensd.**.*', 
       'javax.annotations.**.*', 
       'javax.inject.**.*', 
       'javax.json.**.*', 
       'javax.xml.**.*', 
       'org.glassfish.json.**.*', 
       'com.airhacks.**.*', 
       'okio.**.*', 
       'okhttp3.**.*', 
       'com.fasterxml.**.*', 
       'ch.cnlab.disentis.**.*' 
     ] 
    } 
} 

Das Essen zum Mitnehmen ist, dass ich die Abhängigkeiten androidCompile files("$System.env.ANDROID_HOME/**") enthalten erforderlich, sonst war meine Eclipse-Installation der Android Sachen zugreifen nicht in der Lage. : -/

Und die Abhängigkeiten, müssen Sie den FXActivity zugreifen, sind:

compile 'org.javafxports:jfxdvk:8.60.9' 
androidRuntime 'org.javafxports:jfxdvk:8.60.9' 

über die neuesten Versionen für jfxdvk (JavaFX Dalvik) Um zu erfahren, überprüfe ich auf den folgenden Seiten, von Zeit zu Zeit https://bitbucket.org/javafxports/javafxmobile-plugin - hier können Sie sehen, das Zeug, das javafxmobile-plugin hängt davon ab. http://nexus.gluonhq.com/nexus/content/repositories/releases und http://nexus.gluonhq.com/nexus/content/repositories/releases - um herauszufinden, was die neueste Version der Charm Down-Bibliothek ist (meine in der Gradle-Datei ist schon etwas veraltet).

Ich hoffe, das hilft.

Grüße, Daniel

+1

danke @dzim, war wirklich hilfreich. –

+2

Um einfach alle Ihre Abhängigkeiten für Updates zu überprüfen, können Sie dieses Plugin verwenden: [link] (https://github.com/ben-manes/gradle-versions-plugin) – jns

+0

@jns thx für das Update. War mir dessen nicht bewusst. – dzim

Verwandte Themen