在没有确认消息的情况下激活 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."
也可以使用此方法开启蓝牙
祝你有个愉快的一天。
我正在为残障人士开发电子白手杖;我想通过蓝牙向我的 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."
也可以使用此方法开启蓝牙