andriod 블루투스 개발의 블루투스 검색
1. 블루투스 발견을 위한 방송 수용자
/**
*
*
*/
private BroadcastReceiver _foundReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
BluetoothDevice device = intent
.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
//
_devices.add(device);
DeviceInfo info=new DeviceInfo();
info.setmDeviceName(device.getName());
info.setmDeviceMacAddr(device.getAddress());
infos.add(info);
info=null;
//
showDevices();
}
};
private BroadcastReceiver _discoveryReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent)
{
//
unregisterReceiver(_foundReceiver);
unregisterReceiver(this);
_discoveryFinished = true;
}
};
2、블루투스 어댑터 획득
_bluetooth=BluetoothAdapter.getDefaultAdapter();
//
if(_bluetooth==null){
Toast.makeText(getApplicationContext()," ", 300).show();
return;
}
//
if(!_bluetooth.isEnabled()){
//
Intent intent=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
// , 300
// intent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
startActivity(intent);
3. 등록 수신기
//
IntentFilter discoveryFilter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
registerReceiver(_discoveryReceiver, discoveryFilter);
IntentFilter foundFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(_foundReceiver, foundFilter);
// ,
SamplesUtils.indeterminate(DiscoveryActivity.this, _handler, " ...", _discoveryWorkder, new OnDismissListener() {
public void onDismiss(DialogInterface dialog)
{
for (; _bluetooth.isDiscovering();)
{
_bluetooth.cancelDiscovery();
}
_discoveryFinished = true;
}
}, false);
if (list.indexOf(s) == -1) {//
list.add(s);
도구 클래스는 다음과 같습니다.
class SamplesUtils
{
public static void indeterminate(Context context, Handler handler, String message, final Runnable runnable, OnDismissListener dismissListener)
{
try
{
indeterminateInternal(context, handler, message, runnable, dismissListener, true);
}
catch (Exception e)
{
; // nop.
}
}
public static void indeterminate(Context context, Handler handler, String message, final Runnable runnable, OnDismissListener dismissListener,
boolean cancelable)
{
try
{
indeterminateInternal(context, handler, message, runnable, dismissListener, cancelable);
}
catch (Exception e)
{
; // nop.
}
}
private static ProgressDialog createProgressDialog(Context context, String message)
{
ProgressDialog dialog = new ProgressDialog(context);
dialog.setIndeterminate(false);
dialog.setMessage(message);
return dialog;
}
private static void indeterminateInternal(Context context, final Handler handler, String message, final Runnable runnable,
OnDismissListener dismissListener, boolean cancelable)
{
final ProgressDialog dialog = createProgressDialog(context, message);
dialog.setCancelable(cancelable);
if (dismissListener != null)
{
dialog.setOnDismissListener(dismissListener);
}
dialog.show();
new Thread() {
@Override
public void run()
{
runnable.run();
handler.post(new Runnable() {
public void run()
{
try
{
dialog.dismiss();
}
catch (Exception e)
{
; // nop.
}
}
});
};
}.start();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.