我可以禁用Android设备的蓝牙或相机或wifi,并且只允许通过我的自定义应用程序启用吗?

时间:2014-12-29 12:59:21

标签: android bluetooth camera wifi enable-if

以下是启用/禁用的代码,但不会禁用设备设置。

我想知道如何禁用Android设备的蓝牙(相机/ Wifi)设施,并且只能通过我的自定义应用启用它。用户应该只能通过我们的应用程序在蓝牙上。

BluetoothAdapter bluetoothAdapter = BluetoothAdapter
            .getDefaultAdapter();
    boolean isEnabled = bluetoothAdapter.isEnabled();
    if (isEnabled) {
        Toast.makeText(getApplicationContext(), "Enabled",
                Toast.LENGTH_SHORT).show();
        bluetoothAdapter.disable();
    } else {
        Toast.makeText(getApplicationContext(), "Not Enabled",
                Toast.LENGTH_SHORT).show();
        bluetoothAdapter.enable();
    }

1 个答案:

答案 0 :(得分:0)

您需要实现侦听BluetoothAdapter.ACTION_STATE_CHANGEDlink)的BroadcastReceiver。它应该将其禁用并向用户显示有关锁定的一些信息。

private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        final String action = intent.getAction();

        if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
            final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
                                                 BluetoothAdapter.ERROR);
            switch (state) {
            case BluetoothAdapter.STATE_OFF:
                //do nothing
                break;
            case BluetoothAdapter.STATE_TURNING_OFF:
                //do nothing
                break;
            case BluetoothAdapter.STATE_ON:
                //disable it
                break;
            case BluetoothAdapter.STATE_TURNING_ON:
                //do nothing
                break;
            }
        }
    }
};

这有点hacky,但这是你能做到的最好 - 就像我之前写的那样,没有办法在Settings中禁用这个开关,因为Settings是单独的应用程序,你无法修改它,就像其他应用程序无法修改你的申请。