Bluetooth 설명
7300 단어 블루투스 통신
사용 권한
"android.permission.BLUETOOTH" />
"android.permission.BLUETOOTH_ADMIN" />
초기화
//
defaultAdapter = BluetoothAdapter.getDefaultAdapter();
//
defaultAdapter.enable();
면맞춤된 장치 검색
Set bondedDevices = defaultAdapter.getBondedDevices();
for (BluetoothDevice bluetoothDevice : bondedDevices) {
if (!deviceList.contains(bluetoothDevice))
//
deviceList.add(bluetoothDevice);
}
면맞춤되지 않은 장치 검색
//
receiver = new MyBluetoothReceiver();
//
IntentFilter filter = new IntentFilter();
// action
filter.addAction(BluetoothDevice.ACTION_FOUND);
// action
filter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED);
registerReceiver(receiver, filter);
// action
class MyBluetoothReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//
String action = intent.getAction();
//
BluetoothDevice bluetoothDevice = intent
.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if (action.equals(BluetoothDevice.ACTION_FOUND)) {
//
if (!deviceList.contains(bluetoothDevice)) {
deviceList.add(bluetoothDevice);
}
//
setAdapter();
} else if (action.equals(BluetoothDevice.ACTION_BOND_STATE_CHANGED)) {
int bondState = bluetoothDevice.getBondState();
switch (bondState) {
case BluetoothDevice.BOND_NONE:
Toast.makeText(MainActivity.this, " ", 0).show();
break;
case BluetoothDevice.BOND_BONDING:
Toast.makeText(MainActivity.this, " ", 0).show();
break;
case BluetoothDevice.BOND_BONDED:
Toast.makeText(MainActivity.this, " ", 0).show();
//
deviceList.remove(bluetoothDevice);
//
deviceList.add(0, bluetoothDevice);
//
setAdapter();
break;
default:
break;
}
}
}
}
new Thread() {
public void run() {
// , ,
if (defaultAdapter.isDiscovering()) {
defaultAdapter.cancelDiscovery();
}
// ,
defaultAdapter.startDiscovery();
};
}.start();
데이터 어댑터 설정
// , ,
if (myBluetoothAdapter == null) {
myBluetoothAdapter = new MyBluetoothAdapter(this, deviceList);
listView.setAdapter(myBluetoothAdapter);
} else {
//
myBluetoothAdapter.notifyDataSetChanged();
}
짝이 지정되지 않은 장치 쌍 지정
try {
//
BluetoothDevice bluetoothDevice = deviceList.get(position);
// ,
if (bluetoothDevice.getBondState() == BluetoothDevice.BOND_NONE) {
String address = bluetoothDevice.getAddress();
//
BluetoothDevice remoteDevice = defaultAdapter
.getRemoteDevice(address);
//
//
Class clz = BluetoothDevice.class;
// , , ,
Method method = clz.getMethod("createBond", null);
//
method.invoke(remoteDevice, null);
// , ,
}
배합 장치에 대한 채팅 준비
else if (bluetoothDevice.getBondState() == BluetoothDevice.BOND_BONDED) {
// ,
Intent intent = new Intent(MainActivity.this,MyChatActivity.class);
intent.putExtra("address", bluetoothDevice.getAddress());
startActivity(intent);
}
코드 참조
http://download.csdn.net/detail/zhiyuan0932/9498223
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
안드로이드가 개발한 블루투스 통신응용 프로그램에서 블루투스 기능을 사용하기 위해서는 블루투스 권한을 설명해야 합니다.연결을 요청하고 연결을 받아들이고 데이터를 전송하는 등 블루투스 통신을 수행할 수 있는 권한이 필요합니다.응용 프로그램 시작 장치에...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.