我正在开发一个,其中我有一个ImageButton,当按下Wifi时,它还会更改按钮的src以进行可视化确认。问题是,我不知道如何检测Wifi何时已从其他来源(例如从设置或其他电源控制小部件中)被禁用或启用,并相应地更改按钮的src。
例如,如果我在主屏幕上同时拥有我的小部件和Android默认的Power Control Widget,并且我使用我的小部件禁用了Wifi,那么Android默认Power Control Widget的Wifi按钮也会被禁用,但是如果我使用股票Power Control Widget禁用wifi,我的wifi按钮的src不会改变,并且仍然表示wifi已启用。
我在运行时上注册了一个广播以接收"android.net.wifi.WIFI_STATE_CHANGED“
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.net.wifi.WIFI_STATE_CHANGED");
broadcastReceiverAction = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Int
给定以下代码:
wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifi.getConnectionInfo();
在清单中...and此行:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
我仍然得到一个异常:
WifiService: Neither user 10057 nor current process has android.permission.ACC
我还是android的新手,请有人帮忙。
我希望按照以下方式使用来自Net类的方法:
package com.test;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.widget.TextView;
public class MyApp extends Activity {
/** Called when the activity is first created. */
private Net wifi;
TextView
由于Android 10+不再允许您以编程方式连接wifi网络(您只能建议/将网络添加到列表中,但如果您有现有的WiFi连接,它们可能永远不会连接),所以我想使用wifi Easy connect ,我假设这基本上就是qr代码扫描选项,它是从wifi设置中访问的。
文档指出,您应该检查它是否受支持:
Public APIs are available in Android 10 for use by apps:
WifiManager#isEasyConnectSupported: Queries the framework to determine whether the devi
我试图获得所有可用的wifi的细节,但BroadcastReceiver扫描结果不被调用。
码
活动
wifiStatusActivity extends AppCompatActivity {
WifiManager wifi;
List<ScanResult> results;
/* Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanc