您的位置:首页 > 移动开发 > Android开发

android:手机之间蓝牙通信(一)

2016-04-20 10:28 435 查看
功能:

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); 

完善中,后期会上传源码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: