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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bigtree_mfc/article/details/51198387

功能:

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





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

没有更多推荐了,返回首页