Android는 Bluetooth와 Bluetooth Low Energy를 사용하여 블루투스와 블루투스 4.0, 일행 코드를 구현합니다.
40641 단어 안드로이드 모바일 개발
구글 중국 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)]
카탈로그
프로젝트로 가져오는 방법
jcenter 방식으로 가져오는 것을 지원합니다.로컬 모드 가져오기가 지원됩니다.
jcenter 방식 가져오기
dependencies {
compile 'com.yhd.hdbluetooth:hdbluetooth:1.0.0'
}
Module 방식으로 가져오기
include ':hdbluetooth'
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 */
private final static String SERVICE_UUID="00002902-0000-1000-8000-00805f9b3400";
/** UUID */
private final static String CHARACTER_UUID="00002902-0000-1000-8000-00805f9b3401";
/**
* : , 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Notification의 구현 설정 알림 음악.setSound 2017.06.06오늘 notification을 연습할 때 설정을 하고 알림을 터치할 때 알림을 설정하는 음악을 생각하면 음악 오디오 파일 자원에 대한 인용(Android 자원 파일의 URI 인용)이 발생합니다. Notificatio...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.