使用 gluon-mobile API 以编程方式在 android 中打开 On/Off Wifi
Turn On/Off Wifi in android programmatically using gluon-mobile API's
我一直在使用 JavaFx(使用 JavaFxPorts 和 Gluon-Mobile)处理 Android 应用程序。
我已经使用 ConnectivityService.class 检查设备是否连接到网络。
但是,接下来我要做的是以编程方式打开 On/Off 设备的 Wifi。
如何使用 Gluon-mobile API's.
实现此功能
你好,我不熟悉胶子,但如果你使用 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);
希望这对您有所帮助
所以。要访问 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/**")
,否则我的 Eclipse 安装无法访问 Android 内容。 :-/
访问 FXActivity 所需的依赖项是:
compile 'org.javafxports:jfxdvk:8.60.9'
androidRuntime 'org.javafxports:jfxdvk:8.60.9'
要了解 jfxdvk (JavaFX Dalvik) 的最新版本,我会不时查看以下页面
https://bitbucket.org/javafxports/javafxmobile-plugin - 在这里您可以看到 javafxmobile-plugin
所依赖的东西。
http://nexus.gluonhq.com/nexus/content/repositories/releases and http://nexus.gluonhq.com/nexus/content/repositories/releases - 找出 Charm Down 库的最新版本是什么(我在 Gradle 文件中已经有点过时了)。
希望对您有所帮助。
问候,丹尼尔
我一直在使用 JavaFx(使用 JavaFxPorts 和 Gluon-Mobile)处理 Android 应用程序。
我已经使用 ConnectivityService.class 检查设备是否连接到网络。
但是,接下来我要做的是以编程方式打开 On/Off 设备的 Wifi。
如何使用 Gluon-mobile API's.
你好,我不熟悉胶子,但如果你使用 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);
希望这对您有所帮助
所以。要访问 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/**")
,否则我的 Eclipse 安装无法访问 Android 内容。 :-/
访问 FXActivity 所需的依赖项是:
compile 'org.javafxports:jfxdvk:8.60.9'
androidRuntime 'org.javafxports:jfxdvk:8.60.9'
要了解 jfxdvk (JavaFX Dalvik) 的最新版本,我会不时查看以下页面
https://bitbucket.org/javafxports/javafxmobile-plugin - 在这里您可以看到 javafxmobile-plugin
所依赖的东西。
http://nexus.gluonhq.com/nexus/content/repositories/releases and http://nexus.gluonhq.com/nexus/content/repositories/releases - 找出 Charm Down 库的最新版本是什么(我在 Gradle 文件中已经有点过时了)。
希望对您有所帮助。
问候,丹尼尔