在没有确认消息的情况下激活 android 蓝牙可见性

Activate android bluetooth visibility without confirmation messages

祝你有个愉快的一天。

我正在为残障人士开发电子白手杖;我想通过蓝牙向我的 android 设备发送一些信号。

我的问题是我不知道如何避免所有与蓝牙激活相关的权限。我的朋友(盲人)已经在使用智能手机了,所以我的应用程序需要的是为残障人士提供支持,使他们能够轻松使用该应用程序。

鉴于此,我需要知道如何在后台激活蓝牙,而设备不会抛出确认消息。此外,我需要知道,如何将我的应用程序转换为一个小部件,以便它保持执行状态,同时他们可以使用其他东西?

有谁知道如何用这种方式管理蓝牙?谁能告诉我在哪里可以找到此类信息?因为我在 Android 开发人员中找不到任何内容。

非常感谢。

(编辑)

我用这个,谢谢!

if(mBluetoothAdapter.isEnabled())
    {
        Toast.makeText(getBaseContext(), "Bluetooth already turned On.", Toast.LENGTH_LONG).show();
        label_bt_state.setText(getResources().getString(R.string.labelB_BT_ON));

        //If it isn't connected we can start searching the whiteCane.
        if(isConnected==0)
        {
            label_con_state.setText(getResources().getString(R.string.labelB_CON_OFF));
            if(wasFound==0)
            {
                btn_connect.setEnabled(true);                   
            }
        }else
        {
            label_con_state.setText(getResources().getString(R.string.labelB_CON_ON));
            btn_connect.setEnabled(false);
        }               
    }
    else
    {                           
        //If it's disable I'll turn it on
        Toast.makeText(getBaseContext(), "Bluetooth is disable.\n\tTurning on...", Toast.LENGTH_SHORT).show();                      


        new CountDownTimer(2000, 200) 
        {

             public void onTick(long millisUntilFinished) {
                 //Each 200mS will blink (5 times)
                 label_bt_state.setText(getResources().getString(R.string.labelB_BT_OFF));
                 label_con_state.setText(getResources().getString(R.string.labelB_BT_CON_LOAD));                         
                 btn_connect.setEnabled(false);

                 /*
                  * Radio Button disable
                  */
                 cb_xz.setEnabled(false);
                 cb_yz.setEnabled(false);
                 cb_xy.setEnabled(false);
                 cb_d.setEnabled(false);
        }
             public void onFinish() {
                 mBluetoothAdapter.enable();        
                 Toast.makeText(getBaseContext(), "Bluetooth enabled!", Toast.LENGTH_LONG).show();
                 label_bt_state.setText(getResources().getString(R.string.labelB_BT_ON));
                 label_con_state.setText(getResources().getString(R.string.labelB_CON_OFF));
                 btn_connect.setEnabled(true);

                 /*
                  * Radio Button enable
                  */
                 cb_xz.setEnabled(true);
                 cb_yz.setEnabled(true);
                 cb_xy.setEnabled(true);
                 cb_d.setEnabled(true);
             }
        }.start();//End CountDownTimer              

我相信这就是你之后的样子:

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();    
mBluetoothAdapter.enable();
//mBluetoothAdapter.disable();

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

Android 小部件页面: http://developer.android.com/guide/topics/appwidgets/index.html

编辑:

这对我有用,没有提示:/你也可以试试这个(每次调用它都会切换状态):

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();    
if (!mBluetoothAdapter.isEnabled()) { //Enable if disabled
    Intent localIntent;
    localIntent = new Intent();
    localIntent.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");
    localIntent.addCategory("android.intent.category.ALTERNATIVE");
    localIntent.setData(Uri.parse("4"));
    getBroadcast(paramContext, 0, localIntent, 0).send();
} 

有权限

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>

BluetoothAdapter.enable(),不用dialog.As doc suggest "Turn on the local Bluetooth adapter—do not use without explicit user action to turn on Bluetooth."

也可以使用此方法开启蓝牙