簡體   English   中英

使用gluon-mobile API以編程方式在android中打開/關閉Wifi

[英]Turn On/Off Wifi in android programmatically using gluon-mobile API's

我一直在使用JavaFx(使用JavaFxPorts和Gluon-Mobile)處理Android應用。
我已經使用ConnectivityService.class檢查設備是否已連接到網絡。
但是,接下來要做的就是以編程方式打開/關閉設備的Wifi。
我如何使用Gluon移動API來實現這一點。

所以。 要訪問FXActivity(通過FXActivity.getActivity() ),您將需要稍微更新Gradle文件。

這是我的文件的樣子

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.**.*'
        ]
    }
}

androidCompile files("$System.env.ANDROID_HOME/**")是,我需要包括依賴項androidCompile files("$System.env.ANDROID_HOME/**") ,否則我的Eclipse安裝無法訪問Android東西。 : - /

您需要訪問FXActivity的依賴項是:

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

要了解jfxdvk(JavaFX Dalvik)的最新版本,我會不時檢查以下頁面:httpsjavafxmobile-plugin在這里您可以看到javafxmobile-plugin上。 http://nexus.gluonhq.com/nexus/content/repositories/releaseshttp://nexus.gluonhq.com/nexus/content/repositories/releases-找出Charm Down庫的最新版本是什么(Gradle文件中的mine已經過時了)。

我希望這會有所幫助。

問候,丹尼爾

嗨,您對gluon不熟悉,但是如果您使用的是Java,則可以使用以下方法:

在清單文件中,添加以下權限:

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

然后您可以通過以下布爾值檢查是否啟用了WiFi:

boolean wifiEnabled = wifiManager.isWifiEnabled()

最終可以通過以下方式更改狀態:

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

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM