Вам понадобится
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
в файле манифеста и такие переменные, как:
private final integer REQUEST_ENABLE_BT = 1;
и
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
boolean hasBluetooth = (mBluetoothAdapter == null);
, чтобы в вашем OnCreate выможет сделать что-то вроде:
final ToggleButton togglebutton = (ToggleButton) findViewById(R.id.togglebutton);
togglebutton.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
// Perform action on clicks
if (togglebutton.isChecked())
{
if (hasBluetooth && !mBluetoothAdapter.isEnabled())
{
// prompt the user to turn BlueTooth on
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
}
else
{
if (hasBluetooth && mBluetoothAdapter.isEnabled())
{
// you should really prompt the user for permission to turn
// the BlueTooth off as well, e.g., with a Dialog
boolean isDisabling = mBluetoothAdapter.disable();
if (!isDisabling)
{
// an immediate error occurred - perhaps the bluetooth is already off?
}
}
}
}
});
, где пользовательский ответ на приглашение «включить Bluetooth» перехватывается в
protected void onActivityResult (int requestCode, int resultCode, Intent data)
{
if ((requestCode == REQUEST_ENABLE_BT) && (resultCode == RESULT_OK))
{
boolean isEnabling = mBluetoothAdapter.enable();
if (!isEnabling)
{
// an immediate error occurred - perhaps the bluetooth is already on?
}
else if (mBluetoothAdapter.getState() == BluetoothAdapter.STATE_TURNING_ON)
{
// the system, in the background, is trying to turn the Bluetooth on
// while your activity carries on going without waiting for it to finish;
// of course, you could listen for it to finish yourself - eg, using a
// ProgressDialog that checked mBluetoothAdapter.getState() every x
// milliseconds and reported when it became STATE_ON (or STATE_OFF, if the
// system failed to start the Bluetooth.)
}
}
}