Android 블 루 투 스 통신 / 블 루 투 스 채 팅 의 실현 (一)데모 다운로드 포함
8744 단어 블 루 투 스
본 시리즈 의 글 은 주로 안 드 로 이 드 기기 가 블 루 투 스 통신 을 바탕 으로 실시 간 채 팅 을 실현 하 는 것 을 소개 한다. 글 시 리 즈 는 주로 두 가지 부분 을 포함한다. 안 드 로 이 드 블 루 투 스 의 기본 조작, 안 드 로 이 드 블 루 투 스 의 채 팅 실현 이다.
본 블 로그 자원 무료 다운로드:
블 루 투 스 도구:http://download.csdn.net/detail/laozhuxinlu/11752108
블 루 투 스 대화:http://download.csdn.net/detail/laozhuxinlu/11752117
여러분 은 먼저 이 응용 에서 의 블 루 투 스 기본 작업 의 실현 을 직관 적 이 고 효과적으로 느 낄 수 있 습 니 다.
위의 그림 에서 볼 수 있 듯 이 이쪽 은 블 루 투 스 에 대한 기본 적 인 조작 이 이 루어 집 니 다. 블 루 투 스 를 열 고 블 루 투 스 를 닫 으 며 장치 가 연 결 된 블 루 투 스 장 치 를 보 여 줍 니 다. 장치 주변 에 연결 할 수 있 는 블 루 투 스 장 치 를 스 캔 하고 현재 장 치 를 설정 하면 검 측 될 수 있 는 상 태 를 설정 합 니 다.
그러면 다음은 이 다섯 가지 기본 조작 에 대해 설명 한다.
1. 권한 설정:
장치 블 루 투 스 작업 은 기본 적 인 권한 을 추가 해 야 합 니 다.
이 설명 이 필요 한 것 은 android 6.0 이후 두 가지 변경 사항 이 있 습 니 다.
1. 주변 블 루 투 스 를 검색 할 수 있 는 권한 은 장치 의 모호 한 지리 적 위 치 를 가 져 올 수 있 는 권한 을 추가 해 야 합 니 다.
2. 일부 권한 에 대해 사용자 가 수 동 으로 추 가 를 확인 해 야 합 니 다. 예 를 들 어 위 에서 말 한 장치 의 모호 한 지리 적 위 치 를 가 져 올 수 있 는 권한:
private void checkBluetoothPermission() {
if (Build.VERSION.SDK_INT >= 23) {
//
if (ContextCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
1);
} else {
//
}
} else {
// 6.0
}
}
2. 블 루 투 스 열기:
public void openBT(View view){
if (!BA.isEnabled()) {
Intent turnOn = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(turnOn, 1);
Toast.makeText(getApplicationContext(),"Turned on"
,Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(getApplicationContext(),"Already on",
Toast.LENGTH_LONG).show();
}
}
그 중:
private BluetoothAdapter BA;
BA = BluetoothAdapter.getDefaultAdapter();
이상 은 장치 블 루 투 스 상태 에 대한 획득 과 열기 작업 입 니 다.
3. 블 루 투 스 닫 기:
public void closeBT(View view){
BA.disable();
Toast.makeText(getApplicationContext(),"Turned off" ,
Toast.LENGTH_LONG).show();
}
4. 장치 가 연 결 된 모든 장 치 를 열거 합 니 다.
public void showcennected(View view){
discover_list.clear();
connected_list.clear();
pairedDevices = BA.getBondedDevices();
for(BluetoothDevice bt : pairedDevices)
connected_list.add(bt.getName() + "
" + bt.getAddress());
Toast.makeText(getApplicationContext(),"Showing Paired Devices",
Toast.LENGTH_SHORT).show();
final ArrayAdapter adapter1 = new ArrayAdapter
(this,android.R.layout.simple_list_item_1, connected_list);
LV1.setAdapter(adapter1);
ifconnected = true;
}
코드 를 통 해 알 수 있 듯 이 우선 우리 가 얻 은 모든 연 결 된 장치 가 connected 에 추가 되 어 있 습 니 다.목록 아래:
connected_list.add(bt.getName() + "
" + bt.getAddress());
그리고 ListView 컨트롤 을 통 해 모두 보 여 줍 니 다.
private ListView LV1;
...
LV1.setAdapter(adapter1);
5. 주변 장치 스 캔:
BA.startDiscovery();
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("find"," ");
String action = intent.getAction();
if(BluetoothDevice.ACTION_FOUND.equals(action)){
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
//
Log.i("find"," ");
if (device.getBondState() != BluetoothDevice.BOND_BONDED) {
Log.i("find"," ");
discover_list.add(device.getName() + "
" + device.getAddress());
}
}
else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) { //
if (discover_list == null) {
Log.i("find"," ");
}
Log.i("find"," ");
for(int i=0; i < discover_list.size();i++){
Log.i("BTlist","111");
}
// Log.i("list",discover_list);
final ArrayAdapter adapter1 = new ArrayAdapter
(MasterChat1.this,android.R.layout.simple_list_item_1, discover_list);
LV1.setAdapter(adapter1);
// }
pd.dismiss(); // ProgressDialog
}
}
};
위의 재 구성 함 수 는 스 캔 을 통 해 얻 은 장 치 를 가 져 오고 ListView 에 추가 하 는 것 입 니 다.6. 블 루 투 스 연결 의 실현:
private void connectBT(){
if(BA.isDiscovering()){
BA.cancelDiscovery();
}
BluetoothDevice btDev = BA.getRemoteDevice(connectBTaddress);
connectState = btDev.getBondState();
switch (connectState){
//
case BluetoothDevice.BOND_BONDING:
Toast.makeText(getApplicationContext(),"Be Bonding",
Toast.LENGTH_LONG).show();
//
case BluetoothDevice.BOND_NONE:
//
try {
Method createBondMethod = BluetoothDevice.class.getMethod("createBond");
createBondMethod.invoke(btDev);
PsText.setText(" :"+ ConnectBTname);
} catch (Exception e) {
e.printStackTrace();
}
break;
//
case BluetoothDevice.BOND_BONDED:
try {
//
PsText.setText(" :"+ ConnectBTname);
final String SPP_UUID = "00001101-0000-1000-8000-00805F9B34FB";
UUID uuid = UUID.fromString(SPP_UUID);
BluetoothSocket socket = btDev.createRfcommSocketToServiceRecord(uuid);
socket.connect();
PsText.setText(" :"+ ConnectBTname);
} catch (IOException e) {
e.printStackTrace();
}
break;
}
}
이 를 통 해 알 수 있 듯 이 블 루 투 스 의 연결 은 두 가지 상황 이 있 는데 하 나 는 이전에 연결 되 었 으 나 forget 작업 을 하지 않 은 장치 이 고 다른 하 나 는 직접 연결 을 하 는 것 이다.
7. 마지막 으로 장 치 를 설정 하 는 것 은 스 캔 할 수 있 는 상태의 설정 입 니 다.
public void BeVisable(View view){
Intent getVisible = new Intent(BluetoothAdapter.
ACTION_REQUEST_DISCOVERABLE);
startActivityForResult(getVisible, 0);
대부분의 장 치 는 기본적으로 블 루 투 스 가 스 캔 되 지 않 기 때문에 장치 블 루 투 스 를 다른 장치 에서 스 캔 할 수 있 도록 설정 하 는 방법 을 제공 합 니 다.하지만 기본 값 은 120 초. 여 기 는 블 루 투 스 의 기본 적 인 조작 에 대한 지도 일 뿐 입 니 다. 더 깊이 공부 하고 싶 으 면 다음 편 을 참조 할 수 있 습 니 다. 블 루 투 스 통신 / 블 루 투 스 채 팅 의 실현 (2): 블 루 투 스 통신 의 실시 간 채 팅 실현
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
안 드 로 이 드 와 PC 에서 블 루 투 스 통신 demo돌리다http://royal2xiaose.iteye.com/blog/1420138 전제: 1. 컴퓨터 테스트 사용 2. 테스트 전에 블 루 투 스 는 핸드폰 과 PC 기기 의 블 루 투 스 어댑터 를 잘 맞 추 십시...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.