저는 android에 익숙하지 않고 블루투스 기능으로 응용 프로그램을 만들고 있습니다. 블루투스 어댑터를 설정할 수 있는데, 내 장치 정보를 가져 오지만 블루투스 장치를 발견하기 위해 startdiscovery를 사용할 수는 없습니다. 스캔을 시작할 때 아무 것도하지 않습니다. 여기 Android의 블루투스 : StartDiscovery가 작동하지 않습니다. 장치를 스캔 할 수 없습니다.
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (!(bluetooth.isEnabled())) {
status = "Bluetooth is not Enabled.";
Toast.makeText(AddUser.this, status, Toast.LENGTH_LONG).show();
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, 1);
}
else
{
scand();
}
}
난 그냥 "공공 무효에서 onCreate"함수 뒤에 넣어 한 onActivityResult를 함수이다 :
은 내가 스캔을 시작하는 onclicklistner을 사용하고
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
System.out.println(resultCode);
if (resultCode == RESULT_CANCELED) {
status="Error Enabling bluetooth";
Toast.makeText(AddUser.this, status, Toast.LENGTH_LONG).show();
} else {
scand();
}
}
이것은 내 scand 함수를 호출합니다.이 함수는 startdiscovery를 호출합니다.
private void scand()
{
bluetooth.startDiscovery();
Log.d("itmes", ""+items.size());
item1 = new String[items.size()];
item1 = items.toArray(item1);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Choose a device");
builder.setItems(item1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(), item1[item], Toast.LENGTH_SHORT).show();
}
});
AlertDialog alert = builder.create();
alert.show();
}
이것은 broadca stReceiver : 브로드 캐스트 리시버에 대한 위의 코드에서
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action))
{
Log.e("br", "--- device found ---");
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
items.add(device.getName());
}
}
};
, 내가 문자열의 ArrayList "항목"에서 발견 된 장치 이름을 넣어하려합니다.
나는이 같은 한 OnCreate functon 내부 브로드 캐스트 리시버 등록하고 있습니다 :
filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(mReceiver, filter);
난 AndroidManifest를 파일에 블루투스 권한을 설정했습니다. 위의 scand 기능에서 발견 된 장치의 목록을 보여주고 싶지만 제목이있는 빈 대화 상자를 표시하고 있습니다. startdiscovery 및 broadcastreceiver를 사용하여 alertdialog에 결과를 표시하는 방법을 알려주십시오.
는 당신이 시도 블루투스 장치를 있습니까 검색 모드에서 스캔 하시겠습니까? –
예, 검색 가능합니다. –
startdiscovery 및 broadcastreceiver를 사용하는 올바른 방법은 무엇입니까? –