Android는 Bluetooth와 Bluetooth Low Energy를 사용하여 블루투스와 블루투스 4.0, 일행 코드를 구현합니다.

HDBluetooth
구글 중국 API 링크:https://developer.android.google.cn/guide/topics/connectivity/bluetooth.html일반적인 블루투스 사용을 지원합니다.저전력 블루투스 사용 가능.
[외부 체인 사진 저장 실패, 원본 사이트에 도난 방지 체인 메커니즘이 있을 수 있으므로 그림을 저장하여 직접 업로드하는 것을 권장합니다(img-8GRfUoWh-1583227236967)(https://github.com/yinhaide/HDBluetooth/raw/master/resource/bluetooth_client.gif)] [외부 체인 사진 저장 실패, 원본 사이트에 도난 방지 체인 메커니즘이 있을 수 있으므로 사진을 저장하여 직접 업로드하는 것을 권장합니다(img-JafhKirv-1583227236968)(https://github.com/yinhaide/HDBluetooth/raw/master/resource/bluetooth_service.gif)] [외부 체인 사진 저장 실패, 원본 사이트에 도난 방지 체인 메커니즘이 있을 수 있으므로 사진을 저장하여 직접 업로드하는 것을 권장합니다(img-hQZaydey-15832727236968)https://github.com/yinhaide/HDBluetooth/raw/master/resource/bluetoothle.gif)]
카탈로그
  • 프로젝트에 가져오는 방법
  • 사용 방법
  • 나에 대해서
  • License

  • 프로젝트로 가져오는 방법
    jcenter 방식으로 가져오는 것을 지원합니다.로컬 모드 가져오기가 지원됩니다.
    jcenter 방식 가져오기
  • 이 라이브러리에 필요한 모듈의build입니다.gradle의dependencies에 추가
  • dependencies {
        compile 'com.yhd.hdbluetooth:hdbluetooth:1.0.0'
    }
    

    Module 방식으로 가져오기
  • 전체 프로젝트를 다운로드하여hdmediaplayer를 프로젝트 루트 디렉터리,settings로 복사합니다.gradle에 추가
  • include ':hdbluetooth'
    
  • 이 라이브러리에 필요한 모듈의build입니다.gradle의dependencies에 추가
  • dependencies {
        compile project(':hdbluetooth')
    }
    

    사용 방법
    블루투스 하드웨어는 두 가지 버전으로 나뉘는데 일반적인 블루투스와 저소모 블루투스인데 두 가지 블루투스의 사용 방식도 완전히 다르다.이 라이브러리 파일은 주로 하드웨어 조작의 번거로운 문제를 해결하고 일행 코드를 실현하여 모든 조작을 실현한다.
    BluetoothHelper
    일반적인 블루투스는 서버 측과 클라이언트, 연결 및 통신 방식으로 나눌 수 있으며 Socket 프로토콜을 사용한다.
  • 클라이언트로서 블루투스 목록을 획득하고 연결 쌍 요청을 발동할 수 있음
  • /**
     *  :          ,      UI,         
     */
    private void initBluetooth(){
        BluetoothHelper.getInstance(getApplicationContext())
                .registerBlueToothReceiver()       //       
                .setBluetoothReceiverInterface(new BluetoothHelper.BluetoothReceiverInterface() {
    
                    @Override
                    public void onReceiveDevice(BluetoothDevice device) {
                        //           ,             ,                      
                    }
    
                    @Override
                    public void onReceiveData(final byte[] buffer) {
                        //          
                    }
    
                    @Override
                    public void onState(final BluetoothHelper.State state, Object... args) {
                        //    ,                
                        Log.v(TAG,state.toString());
                        if(state== BluetoothHelper.State.STATE_CONNECTED){
                            //    
                        }
                    }
                })
                .openBluetooth()                    //    
                .setDiscovery(true);                //    ,false     ;
    }
    
  • 서비스 측으로서 블루투스 연결 짝짓기 요청
  • 을 획득할 수 있습니다
    /**
     *  :          ,      UI,         
     */
    private void initBluetooth(){
        BluetoothHelper.getInstance(getApplicationContext())
                .registerBlueToothReceiver()        //       
                .setBluetoothReceiverInterface(new BluetoothHelper.BluetoothReceiverInterface() {
    
                    @Override
                    public void onReceiveDevice(BluetoothDevice device) {
                        //           ,             ,                      
                    }
    
                    @Override
                    public void onReceiveData(final byte[] buffer) {
                        //          
                    }
    
                    @Override
                    public void onState(final BluetoothHelper.State state, Object... args) {
                        //    ,                
                        Log.v(TAG,state.toString());
                        if(state== BluetoothHelper.State.STATE_CONNECTED){
                            //    
                        }
                    }
                })
                .setDiscoverableTime(0)             //         ,0      ,-1        ,         
                .openBluetooth()                    //    
                .startServer();                     //    ,       ,         ,                           :stopServer()      
    }
    
  • 연결 장치
  • BluetoothHelper.getInstance(BluetoothClientActivity.this).connectDevice(addressString);
    
  • 라디오에 등록했기 때문에 이 라디오를 사용할 필요가 없을 때 취소
  • protected void onDestroy(){
        super.onDestroy();
        BluetoothHelper.getInstance(getApplicationContext()).unRegisterBlueToothReceiver();
    }
    
  • 더 많은 작업
  • /**                  ,  false */
    BluetoothHelper.getInstance(getApplicationContext()).setIsAutoPare(  false);
    /**           ,  true */
    BluetoothHelper.getInstance(getApplicationContext()).setIsSecurConnect(true);
    /**        ,         */
    BluetoothHelper.getInstance(getApplicationContext()).setEnableBluetooth(true);
    /**     ,         */
    BluetoothHelper.getInstance(getApplicationContext()).closeBluetooth();
    /**              */
    BluetoothHelper.getInstance(getApplicationContext()).getBondedDevices();
    /**          */
    BluetoothHelper.getInstance(getApplicationContext()).getName();
    /**              */
    BluetoothHelper.getInstance(getApplicationContext()).getRemoteDevice(address);
    /**          UUI,     ,            SPP_UUID */
    BluetoothHelper.getInstance(getApplicationContext()).setServerUUID(uuid);
    /**          ,   “xjkb2” */
    BluetoothHelper.getInstance(getApplicationContext()).setServerName(name);
    /**            */
    BluetoothHelper.getInstance(getApplicationContext()).unPairDevice(device);
    /**         */
    BluetoothHelper.getInstance(getApplicationContext()).connectDevice(device);
    /**          ,                  ,       */
    BluetoothHelper.getInstance(getApplicationContext()).disconnectDevice();
    /**                    */
    BluetoothHelper.getInstance(getApplicationContext()).write(bytes);
    /**         ,          */
    BluetoothHelper.getInstance(getApplicationContext()).stopServer();
    /**                      */
    BluetoothHelper.getInstance(getApplicationContext()).getBluetoothAdapter();
    

    BluetootLEhHelper
    Bluetooth 저전력 클래스는 서버와 클라이언트, 연결 및 통신 방식으로 나눌 수 있으며 GATT 프로토콜을 사용합니다.이 종류는 블루투스 연결, 블루투스 기본 조작과 블루투스 데이터의 상호작용을 실현할 수 있다.
  • 상호작용 데이터가 필요한 UUID 문자열을 설정합니다(예를 들어 실제 상황에 따라 설정하세요)
  • /**          UUID */
    private final static String SERVICE_UUID="00002902-0000-1000-8000-00805f9b3400";
    /**          UUID */
    private final static String CHARACTER_UUID="00002902-0000-1000-8000-00805f9b3401";
    
  • Google API의 제한으로 인해 안드로이드 단말기의 저전력 블루투스 프로토콜은 주동적인 연결자로서만 지원되고 피접속자로서는 사용할 수 없으며 iOS 단말기의 저전력 블루투스에 비해 이 제한이 없다.초기화된 올바른 자세:
  • /**
     *  :          ,      UI,         
     */
    private void initBluetooth() {
        //                  
        if(!BluetoothLEHelper.getInstance(getApplicationContext()).isSurport()){
            finish();
        }
        BluetoothLEHelper.getInstance(getApplicationContext())
                .setEnableBluetooth(true)                //    
                .setBlutoothReceiverInterface(new BluetoothLEHelper.BluetoothLowEnergyInterface() {
                    @Override
                    public void onReceiveDevice(BluetoothDevice device) {
                        //           ,             ,                      
                    }
    
                    @Override
                    public void onReceiveData(final byte[] data, BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) {
                        //          
                    }
    
                    @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
                    @Override
                    public void onState(final BluetoothLEHelper.State state, BluetoothGatt gatt, Object... args) {
                        Log.v(TAG,state.toString());
                        //       ,         ,              ,     ,             Characteristic   
                        //        ,             
                        if(state==BluetoothLEHelper.State.STATE_SERVER_DISCOVERED){
                            BluetoothGattCharacteristic characteristic=gatt.getService(UUID.fromString(SERVICE_UUID)).getCharacteristic(UUID.fromString(CHARACTER_UUID));
                            if(characteristic!=null){
                                BluetoothLEHelper.getInstance(getApplicationContext()).setCharacteristicNotification(characteristic,true);
                            }
                        }else if(state== BluetoothLEHelper.State.STATE_CONNECTED){
                             //    
                         }
                    }
                })
                .scanLeDevice(true);                 //      
    
    }
    
  • 연결 장치
  • BluetoothLEHelper.getInstance(getApplicationContext()).connectGatt(addressString,isAutoConnect);
    
  • 더 많은 작업
  • /**          */
    BluetoothLEHelper.getInstance(getApplicationContext()).setScanPeriod(1000);
    /**      */
    BluetoothLEHelper.getInstance(getApplicationContext()).disconnect();
    BluetoothLEHelper.getInstance(getApplicationContext()).disconnectWithGatt(gatt);
    /**           */
    BluetoothLEHelper.getInstance(getApplicationContext()).getSupportedGattServices();
    /**          ,0      ,-1        ,          */
    BluetoothLEHelper.getInstance(getApplicationContext()).setDiscoverableTime(0);
    /**       */
    BluetoothLEHelper.getInstance(getApplicationContext()).getBluetoothName();
    /**       */
    BluetoothLEHelper.getInstance(getApplicationContext()).setBluetoothName("xjkb2");
    /**       */
    BluetoothLEHelper.getInstance(getApplicationContext()).setBluetoothName("xjkb2");
    /**      */
    BluetoothLEHelper.getInstance(getApplicationContext()).wirteCharacteristic(characteristic,stringValue);
    BluetoothLEHelper.getInstance(getApplicationContext()).wirteCharacteristic(characteristic,byteValue);
    /**      */
    BluetoothLEHelper.getInstance(getApplicationContext()).readCharacteristic(characteristic);
    

    나에 관하여
       Star Fork
        :   ([email protected]

    License
    Copyright 2017 yinhaide
    
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
    
       http://www.apache.org/licenses/LICENSE-2.0
    
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
    

    Github 전송문https://github.com/yinhaide/HDBluetooth

    좋은 웹페이지 즐겨찾기