当前位置: 首页 > 知识库问答 >
问题:

Android永久禁用/启用Wifi和蓝牙

拓拔松
2023-03-14

我有一个应用程序,可以管理设备的wifi和蓝牙状态。为此,它接收到一条带有状态的消息,并且该状态是否应该被强制。然后应用状态并保存两个值。

例如:我发送消息禁用wifi并强制使用。然后我关闭无线网络,拯救国家,这是被迫的。此外,我有一个BroadcastRecector,监听无线网络状态的变化,如果收到,它首先检查是否启用了无线网络,如果这是好的。这就像一个魅力:公共类无线状态接收器扩展了广播接收器{

public void onReceive(final Context context, final Intent intent) {
    // get new wifi state
    final int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_ENABLING);
    final WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);

    // if enabling, check if thats okay
    if (wifiState == WifiManager.WIFI_STATE_ENABLING && WIFI_FORCE_DISABLE) {
        wifiManager.setWifiEnabled(false);
    } else

    // if disabling, check if thats okay
    if (wifiState == WifiManager.WIFI_STATE_DISABLING && WIFI_FORCE_ENABLE) {
        wifiManager.setWifiEnabled(true);
    }
}

但如果我尝试与蓝牙完全相同的事情,它不会切换回来...

public void onReceive(final Context context, final Intent intent) {
    // get new wifi state
    final int bluetoothState = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.STATE_ON);
    final BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

    // if enabling, check if thats okay
    if (bluetoothState == BluetoothAdapter.STATE_TURNING_ON && BT_FORCE_DISABLE) {
        mBluetoothAdapter.disable();
    } else

    // if disabling, check if thats okay
    if (bluetoothState == BluetoothAdapter.STATE_TURNING_OFF && BT_FORCE_ENABLE) {
        mBluetoothAdapter.enable();
    }
}

任何想法如何我可以永久禁用蓝牙?

共有1个答案

尉迟鸿熙
2023-03-14

再过5分钟我就走上正轨了。。。

我上述方法的问题是,我等着听关闭/打开。看起来,如果我在蓝牙刚刚开启时禁用它,它将继续开启并保持开启状态。所以我必须等到它真正打开,然后禁用它。换句话说,我必须删除8个字符,而且效果很好:

public void onReceive(final Context context, final Intent intent) {
    // get new wifi state
    final int bluetoothState = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.STATE_ON);
    final BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

    // if enabling, check if thats okay
    if (bluetoothState == BluetoothAdapter.STATE_ON && BT_FORCE_DISABLE) {
        mBluetoothAdapter.disable();
    } else

    // if disabling, check if thats okay
    if (bluetoothState == BluetoothAdapter.STATE_OFF && BT_FORCE_ENABLE) {
        mBluetoothAdapter.enable();
    }
}
 类似资料:
  • 我尝试在我的Xamarin Ui测试中以编程方式启用/禁用wifi。< br >我已经找到了这个:Android:如何以编程方式启用/禁用Wifi或互联网连接。但是它似乎根本不起作用。< br> 我还尝试了这样的方法: 第一行 (Android.App.Application.Context) 会引发一个异常: 我正在使用以下命名空间: 我的项目引用了< code>Mono。Android。

  • 我正在为一所学校开发一个Android应用程序,我想打开这个应用程序,以防止用户在设备上做任何事情,除了我在我的应用程序内提供的东西,我的意思是什么也不做...所以首先导航栏应该被禁用和隐藏 我看到了这一点,但它适用于4.4版,它并不能解决问题,因为如果你滑动屏幕,你将返回菜单。(如何在android活动中永久隐藏导航栏?) 这也不起作用(在活动中永久隐藏导航栏)(有没有办法在Android IC

  • 为了节省电池,我想在给定时间(比如晚上11点)关闭所有连接(蓝牙、wifi、移动网络)和其他耗电功能。 最好的方法是什么?我考虑的是在引导后启动的服务,因此我不必手动重新启动该服务。一开始,我甚至不需要一个UI应用程序——我可以硬编码关闭的时间。也许以后可以通过GUI更改时间会更好,但这并不是真的必要。 因此,服务需要做一些事情的唯一时间是在我想要的时间,但是为了检测它需要在后台连续运行的时间而不

  • 这个问题只是当WIFI被禁用并且phone正在使用移动数据的时候。如果我有WIFI连接,那么应用程序可以正常工作。 以下是代码详细信息: 清单: uses-permission Android:name=“android.permission.internet” uses-permissionandroid:name=“android.permission.access_network_state

  • 我在Android应用程序,涉及连接一个特定的WiFi SSID没有密码。每当用户进入应用程序时,应用程序都会通过BLE检测特定的信标。之后,该应用程序尝试使用WifiManager连接应用程序代码中编程的WiFi。在这里,我面临一些问题: 1)如果WiFi已经禁用在手机-应用程序启用WiFi并尝试连接到已经配置的WiFi(可能是字母顺序)。在这种情况下,它可能会连接另一个可用的WiFi,并在手机

  • 本文向大家介绍Android 实现永久性开启adb 的root权限,包括了Android 实现永久性开启adb 的root权限的使用技巧和注意事项,需要的朋友参考一下 adb 的root 权限是在system/core/adb/adb.c 中控制。主要根据ro.secure 以及 ro.debuggable 等system property 来控制。 默认即档ro.secure 为0 时,即开启r