功能:
1、蓝牙开启、关闭、可搜索到(有些设备开启蓝牙后系统会自动设置设备可以被搜索到,但是有的不会设置,所以在打开蓝牙后最好自己判断一下)。
2、获取本机蓝牙名称、地址,修改本机蓝牙名称。
PS:首先关键部分:AndroidManifest.xml添加权限
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
//安卓6.0后需要再加上下面两个权限才能搜索到设备,不然搜索不到
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
1、基础功能:打开蓝牙设备、关闭蓝牙设备
XML
<Button
android:id="@+id/Button1"
android:layout_width="wrap_content"
android:layout_height="40dip"
android:text="打开蓝牙" />
<Button
android:id="@+id/Button2"
android:layout_width="wrap_content"
android:layout_height="40dip"
android:text="关闭蓝牙" />
JAVA
public class MainActivity extends ActionBarActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button mt1 = (Button)this.findViewById(R.id.Button1);
Button mt2 = (Button)this.findViewById(R.id.Button2);
final BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
mt1.setOnClickListener(new OnClickListener()//打开蓝牙
{
public void onClick(View v)
{
if (mBluetoothAdapter == null)
{
toast("本机没有找到蓝牙硬件或驱动!");
return;
}
// 如果本地蓝牙没有开启,则开启
else if (!mBluetoothAdapter.isEnabled())
{
Intent intent=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(intent, RESULT_FIRST_USER);
mBluetoothAdapter.enable();
if (mBluetoothAdapter.getScanMode() != BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) //设置为搜索可见300秒
{
Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
startActivity(discoverableIntent);
}
}
}
});
mt2.setOnClickListener(new OnClickListener()//关闭蓝牙
{
public void onClick(View v)
{
if (mBluetoothAdapter == null)
{
toast("本机没有找到蓝牙硬件或驱动!");
return;
}
else if (mBluetoothAdapter.isEnabled())
{
mBluetoothAdapter.disable();
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1)
{
if (resultCode == RESULT_OK)
{
toast("蓝牙已经开启");
}
else if (resultCode == RESULT_CANCELED)
{
toast("不允许蓝牙开启");
return;
}
}
}
public void toast(String str)
{
Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show();
}
}
关于头文件,直接使用Ctrl+Shift+o快捷键添加就可以了。
2、获取本机蓝牙名称、地址,修改名称,添加按钮事件然后类似1
获取本机蓝牙名称
toast(mBluetoothAdapter.getName());
获取本机蓝牙地址
toast(mBluetoothAdapter.getAddress ());
设置本机蓝牙名称
String add = et1.getText().toString();//一个编辑框,获取编辑框内容
mBluetoothAdapter.setName(add);
完善中,后期会上传源码。