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

功能:

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





完善中,后期会上传源码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值