您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > Android之Bluetooth(蓝牙)编程实现
Android蓝牙:创建Bluetooth,找到本地区域可用的蓝牙设备或匹配的蓝牙设备,连接设备,传输数据。所有的BluetoothAPIs都在android.bluetooth包下。下面是创建蓝牙连接需要实现的类和接口:BluetoothAdapter:表示本地的蓝牙适配器。BluetoothAdapter是所有蓝牙交换的接入点。使用它,你可以发现其他的蓝牙设备,查找一些匹配的设备,用MAC地址来实例化一个BluetoothDevice。创建一个BluetoothServerSocket来监听其他设备,进而和它们进行通信。BluetoothDevice:表示远程的蓝牙设备。用它通过BluetoothSocket来请求与远程的设备进行连接。后者查询设备的基本信息,例如名称,地址,类或者结合的状态。BluetoothSocket:表示一个Bluetoothsocket接口(与TCPsocket相似)。它是一个连接点,运行设备通过InputStream和OutputStream的形式来交换数据。BluetoothServiceSocket:表示一个打开服务socket,用来监听收到的请求(与TCPserversocket相似)。为了连接设备,一个设备必须打开服务socket。当一个远程的设备请求连接的时候,当连接被接收的时候,BluetoothServiceSocket返回一个BluetoothSocket。BluetoothClass:描述蓝牙设备的一般特征和性能。这是个只读的一系列属性。定义了主要和最小的设备类和服务。然而,它描述的设备属性和和服务是不完全可靠的,但是,在表示设备类型时,它是有用的。BluetoothProfile:一个代表蓝牙属性的接口。指基于无线蓝牙交流的无线接口规则。BluetoothHeadset:提供在手机手机上使用蓝牙耳机的支持。BluetoothA2dp:定义什么样的数据可以在蓝牙之间传递。BluetoothProfiles.ServiceListener:当蓝牙设备连接或者断开时,用它来通知BluetoothProfilesIPC客户端。它是一个接口。蓝牙权限:为了使用蓝牙,你必须在你的应用程序中声明权限。manifest...uses-permissionandroid:name=android.permission.BLUETOOTH/.../manifest两种权限:BLUETOOTH和BLUETOOTHADMIN.当使用BLUETOOTHADMIN时,一定要声明BLUETOOTH。工程目录如下:实现效果图如下:(1)启动时请求打开蓝牙(2)搜索设备(3)链接一个设备(4)下面即可进行数据传输具体实现代码如下:(1)BluetoothChat.classpackagecom.example.BluetoothChat;importjava.io.UnsupportedEncodingException;importjava.util.UUID;importcom.example.BluetoothChat.R;importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.bluetooth.BluetoothAdapter;importandroid.bluetooth.BluetoothDevice;importandroid.content.DialogInterface;importandroid.content.Intent;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;importandroid.text.Html;importandroid.util.Log;importandroid.view.Gravity;importandroid.view.KeyEvent;importandroid.view.Menu;importandroid.view.MenuInflater;importandroid.view.MenuItem;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.view.WindowManager;importandroid.view.inputmethod.EditorInfo;importandroid.widget.Button;importandroid.widget.CheckBox;importandroid.widget.CompoundButton;importandroid.widget.CompoundButton.OnCheckedChangeListener;importandroid.widget.EditText;importandroid.widget.TextView;importandroid.widget.Toast;publicclassBluetoothChatextendsActivity{//调试privatestaticfinalStringTAG=BluetoothChat;privatestaticbooleanD=true;privatestaticfinalStringinfo=junge;//类型的消息发送从bluetoothchatservice处理程序publicstaticfinalintMESSAGE_STATE_CHANGE=1;publicstaticfinalintMESSAGE_READ=2;publicstaticfinalintMESSAGE_WRITE=3;publicstaticfinalintMESSAGE_DEVICE_NAME=4;publicstaticfinalintMESSAGE_TOAST=5;publicstaticfinalStringBluetoothData=fullscreen;publicStringfilename=;//用来保存存储的文件名privateStringnewCode=;privateStringnewCode2=;//键名字从收到的bluetoothchatservice处理程序publicstaticfinalStringDEVICE_NAME=device_name;publicstaticfinalStringTOAST=toast;//独特的是这个应用程序privatestaticfinalUUIDMY_UUID=UUID.fromString(00001101-0000-1000-8000-00805F9B34FB);//Intent需要编码publicstaticfinalintREQUEST_CONNECT_DEVICE=1;privatestaticfinalintREQUEST_ENABLE_BT=2;//布局控件privateTextViewmTitle;privateEditTextmInputEditText;privateEditTextmOutEditText;privateEditTextmOutEditText2;privateButtonmSendButton;privateCheckBoxHEXCheckBox;privateButtonbreakButton;privateCheckBoxcheckBox_sixteen;/*privateImageViewImageLogoView;*///名字的连接装置privateStringmConnectedDeviceName=null;//传出消息的字符串缓冲区privateStringBuffermOutStringBuffer;//当地的蓝牙适配器privateBluetoothAdaptermBluetoothAdapter=null;//成员对象的聊天服务privateBluetoothChatServicemChatService=null;//设置标识符,选择用户接受的数据格式privatebooleandialogs;//第一次输入加入--变量privateintsum=1;//名社民党记录当创建服务器套接字Stringmmsg=;Stringmmsg2=;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);D=false;if(D)Log.e(TAG,+++ONCREATE+++);Log.i(info,+dialogs);//设置窗口布局//requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);setContentView(R.layout.main_bluetooth);//getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.custom_title);mInputEditText=(EditText)findViewById(R.id.editText1);mInputEditText.setGravity(Gravity.TOP);mInputEditText.setSelection(mInputEditText.getText().length(),mInputEditText.getText().length());mInputEditText.clearFocus();mInputEditText.setFocusable(false);//设置文本的标题mTitle=(TextView)findViewById(R.id.title_left_text);//mTitle.setText(R.string.app_name);mTitle=(TextView)findViewById(R.id.title_right_text);//初始化Radiobutton]/*****************************************************************//*****************************************************************//*****************************************************************///HEXCheckBox=(CheckBox)findViewById(R.id.radioMale);/*****************************************************************//*****************************************************************//*****************************************************************/breakButton=(Button)findViewById(R.id.button_break);//得到当地的蓝牙适配器mBluetoothAdapter=BluetoothAdapter.getDefaultAdapter();/*****************************************************************//*****************************************************************//*****
本文标题:Android之Bluetooth(蓝牙)编程实现
链接地址:https://www.777doc.com/doc-4444754 .html