我正在开发一个应用程序wifi,用户将被要求输入他选择的扫描网络的密码,如果用户输入正确的密码,它连接并运行良好.但是当用户输入错误的密码时,会添加一个具有该名称的新网络,并且无法验证错误密码的cos,并且它将具有身份验证问题状态.
现在,如果用户尝试再次扫描并选择相同的网络,并输入正确的密码,即使密码现在正确并且将具有禁用状态,它也无法连接,因为之前的连接仍显示该身份验证问题状态.
如何解决这个问题呢?有没有办法忘记使用ConnectivityManager或wifimanager的所有网络?或任何其他解决方案?
我正在开发一个应用程序,我可以在其中查找和配置BLE设备.我使用标准的Android BLE API,但最近我遇到了一些奇怪的问题.
当我打开我的应用程序时,BLE扫描工作正常.我正在扫描使用:
mBluetoothAdapter.startLeScan(mLeScanCallback); // for Kitkat and below
Run Code Online (Sandbox Code Playgroud)
和
mBluetoothAdapter.getBluetoothLeScanner().startScan(mScanCallback); // for Lollipop and above
Run Code Online (Sandbox Code Playgroud)
在Logcat中我收到以下消息(我猜这对于这个问题很重要):
D/BluetoothAdapter: onClientRegistered() - status=0 clientIf=5
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,我还可以从我的BLE设备中读取某些特征(例如电池状态).我使用以下命令连接到设备以在单独的片段中读取此特征:
mBluetoothManager = (BluetoothManager) mContext.getSystemService(Context.BLUETOOTH_SERVICE);
mBluetoothAdapter = mBluetoothManager.getAdapter();
mBluetoothDevice = mBluetoothAdapter.getRemoteDevice(mMacAddress);
mBluetoothGatt = mBluetoothDevice.connectGatt(mContext, false, mGattCallback);
Run Code Online (Sandbox Code Playgroud)
正确读取特征.在onCharacteristicRead回调中我也断开并关闭Gatt:
mBluetoothGatt.disconnect();
mBluetoothGatt.close();
Run Code Online (Sandbox Code Playgroud)
每次打开一个片段来读取一个特征(无论它是否是同一个设备),clientIf值都会增加.我可以在LogCat中看到:
D/BluetoothGatt: onClientRegistered() - status=0 clientIf=6
D/BluetoothGatt: onClientRegistered() - status=0 clientIf=7
D/BluetoothGatt: onClientRegistered() - status=0 clientIf=8
D/BluetoothGatt: onClientRegistered() - status=0 clientIf=9
D/BluetoothGatt: onClientRegistered() - status=0 clientIf=10
Run Code Online (Sandbox Code Playgroud)
一切正常,直到clientIf值等于10. BLE扫描停止查找任何设备,我无法连接到我的任何设备读取任何特征等.而LogCat无限显示这些消息:
D/BluetoothGatt: unregisterApp() - mClientIf=0 …Run Code Online (Sandbox Code Playgroud) 我正在研究一个Android项目,我需要检查互联网连接.我搜索了网络,我在stackoverflow上找到了解决方案.但是,我在检查互联网状态时遇到了问题.我已经到处搜索,但我找不到解决问题的方法.
这是清单:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)
以下是检查互联网是否已连接的代码:
cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
if (cm != null) {
NetworkInfo ni = cm.getActiveNetworkInfo();
isConnected = (ni != null && ni.isAvailable() && ni.isConnected()) ? true : false;
}
Run Code Online (Sandbox Code Playgroud)
问题是即使TYPE_MOBILE数据流量处于活动状态,ni变量也始终为空.要访问运营商互联网流量,这是正确的测试方式吗?或者我必须使用TelephonyManager?这很奇怪,因为我使用了getNetworkInfo()[]并对其进行了调试,TYPE_MOBILE的HSPA出现在那里,但isAvalaible总是false而getState()= DISCONNECTED.但是我启用了运营商的数据流量并且正在工作(在其他应用程序中)
[编辑]:顺便说一下我直接在设备中测试它而不是在模拟器中:).
提前致谢.问候.
null android connectivity android-2.1-eclair android-wireless
我的程序试图检测移动网络是否在某个位置可用.
问题是,当我没有数据连接时,并不意味着网络不存在......这取决于用户的偏好.有可用的API NetworkInfo.isAvailable(),用于用户设置,例如用户是否正在漫游和漫游,或者AirplaneMode是否已打开.
我的问题是我无法弄清楚用户是否在Settings/WirelessNetworks/MobileNetworks下禁用了数据服务.
听起来像一个微不足道的问题,但我没有找到API调用.
我试过开发者模式和USB调试是否启用,
使用以下代码更改。工作正常。
private fun check_My_Android_Mobile_Developer_Mode_Status() {
// 解决方案1
val adb: Int = Settings.Secure.getInt(this.contentResolver,
Settings.Global.ADB_ENABLED, 0)
Toast.makeText(this,"USB Debugging Detect: adb mode:"+adb, Toast.LENGTH_LONG).show()
Run Code Online (Sandbox Code Playgroud)
// 解决方案2
if(Settings.Secure.getInt(this.getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) == 1) {
// Developer Mode enabled
Toast.makeText(this,"Developer Mode enabled: Show Alert", Toast.LENGTH_LONG).show()
} else {
//Developer Mode does not enabled
Toast.makeText(this,"Developer does not enabled: Running Safe Mode", Toast.LENGTH_LONG).show()
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我想检查无线调试模式是否已启用(从开发人员模式打开状态)。我无法找到任何解决方案。
任何人都可以帮忙解决这个问题吗?谢谢提前。参考链接如下:
我最近购买了索尼xperia P,但它无法检测到ad-hoc网络.经过一些谷歌搜索后我才知道android不支持ad-hoc网络,我没有修改/ system/bin/wpa_supplicant文件,这样它也可以显示ad-hoc网络.我在github上发现了很多修改过的文件,但我不知道应该使用哪一个.文件wpa_supplicant设备是特定的还是特定于Android版本的?我的Android版本是4.0.4(索尼xperia P),任何人都可以给我我的手机可以使用的确切文件.
android android-networking android-wifi android-wireless android-internet
我使用HTC Explorer,我在笔记本电脑上创建了一个ad-hoc网络.虽然其他笔记本电脑很容易连接到它,但我的移动设备甚至都没有检测到Wi-Fi.
如何将手机连接到笔记本电脑上的Wi-Fi热点(运行Windows 7)?
我正在尝试开发一个应用程序,我需要以编程方式连接到特定的APN以进行网络测试.
作为用户,我可以通过转到"设置" - >"无线和网络" - >"移动网络"(长按) - >"接入点名称"来完成此操作.它甚至会让我手动添加一个新的.
我想知道,有一种应用程序可以自动执行此操作的方式吗?我有root权限和你可能需要的一切.
如果有人知道android源码,你能指点我去哪里研究这个屏幕的行为吗?我试图在那里潜水,但我有点失落.
您好,我想在调试模式下将我的 android 与 android studio 连接
没有USB线
我正在使用 mac os
我想实现一个应用程序来测量来自室内环境的 WiFi 信号的质量。从我的研究中,我发现获得准确测量的最佳方法不是仅获得 RSSI,而是使用 SNR(信噪比)。
如何从 Android SDK 获取噪声级别?据我所知,没有可用的 API。但是,我找到了一种提供 SNR ( getEvdoSnr() ) 的方法。不幸的是,这仅适用于 GSM/CDMA 信号,不适用于 WiFi 连接。
有什么可能在 Android 中计算 SNR?我相信这是可行的,因为我在 Play 商店(称为 WiFi SNR)上找到了一个成功测量该比率的应用程序。
注意:Android ScanResult 不提供噪声级别,即使它在官方文档中指定:
描述有关检测到的接入点的信息。除了此处描述的属性之外,请求方还会跟踪质量、噪声和最大比特率属性,但目前不会将它们报告给外部客户端。
android ×10
android-wireless ×10
android-wifi ×3
java ×2
wifi ×2
adb ×1
adbwireless ×1
android-ble ×1
apn ×1
connectivity ×1
macos ×1
null ×1
windows ×1
wireless ×1