android蓝牙获取列表为空,android - How to get the bluetooth devices as a list? - Stack Overflow...

I tried the below code,

main.xml

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"

/>

android:id="@+id/bluetoothstate"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

/>

android:id="@+id/listpaireddevices"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="List Paired Devices"

android:enabled="false"

/>

android:id="@+id/bluetoothstate"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

/>

ListPairedDevicesActivity.java

import java.util.Set;

import android.app.ListActivity;

import android.bluetooth.BluetoothAdapter;

import android.bluetooth.BluetoothClass;

import android.bluetooth.BluetoothDevice;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.ListView;

public class ListPairedDevicesActivity extends ListActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

ArrayAdapter btArrayAdapter

= new ArrayAdapter(this,

android.R.layout.simple_list_item_1);

BluetoothAdapter bluetoothAdapter

= BluetoothAdapter.getDefaultAdapter();

Set pairedDevices

= bluetoothAdapter.getBondedDevices();

if (pairedDevices.size() > 0) {

for (BluetoothDevice device : pairedDevices) {

String deviceBTName = device.getName();

String deviceBTMajorClass

= getBTMajorDeviceClass(device

.getBluetoothClass()

.getMajorDeviceClass());

btArrayAdapter.add(deviceBTName + "\n"

+ deviceBTMajorClass);

}

}

setListAdapter(btArrayAdapter);

}

private String getBTMajorDeviceClass(int major){

switch(major){

case BluetoothClass.Device.Major.AUDIO_VIDEO:

return "AUDIO_VIDEO";

case BluetoothClass.Device.Major.COMPUTER:

return "COMPUTER";

case BluetoothClass.Device.Major.HEALTH:

return "HEALTH";

case BluetoothClass.Device.Major.IMAGING:

return "IMAGING";

case BluetoothClass.Device.Major.MISC:

return "MISC";

case BluetoothClass.Device.Major.NETWORKING:

return "NETWORKING";

case BluetoothClass.Device.Major.PERIPHERAL:

return "PERIPHERAL";

case BluetoothClass.Device.Major.PHONE:

return "PHONE";

case BluetoothClass.Device.Major.TOY:

return "TOY";

case BluetoothClass.Device.Major.UNCATEGORIZED:

return "UNCATEGORIZED";

case BluetoothClass.Device.Major.WEARABLE:

return "AUDIO_VIDEO";

default: return "unknown!";

}

}

@Override

protected void onListItemClick(ListView l, View v, int position, long id) {

// TODO Auto-generated method stub

super.onListItemClick(l, v, position, id);

Intent intent = new Intent();

setResult(RESULT_OK, intent);

finish();

}

}

AndroidBluetooth.java

import android.app.Activity;

import android.bluetooth.BluetoothAdapter;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

public class AndroidBluetooth extends Activity {

private static final int REQUEST_ENABLE_BT = 1;

private static final int REQUEST_PAIRED_DEVICE = 2;

/** Called when the activity is first created. */

Button btnListPairedDevices;

TextView stateBluetooth;

BluetoothAdapter bluetoothAdapter;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

btnListPairedDevices = (Button)findViewById(R.id.listpaireddevices);

stateBluetooth = (TextView)findViewById(R.id.bluetoothstate);

bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

CheckBlueToothState();

btnListPairedDevices.setOnClickListener(btnListPairedDevicesOnClickListener);

}

private void CheckBlueToothState(){

if (bluetoothAdapter == null){

stateBluetooth.setText("Bluetooth NOT support");

}else{

if (bluetoothAdapter.isEnabled()){

if(bluetoothAdapter.isDiscovering()){

stateBluetooth.setText("Bluetooth is currently in device discovery process.");

}else{

stateBluetooth.setText("Bluetooth is Enabled.");

btnListPairedDevices.setEnabled(true);

}

}else{

stateBluetooth.setText("Bluetooth is NOT Enabled!");

Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);

}

}

}

private Button.OnClickListener btnListPairedDevicesOnClickListener

= new Button.OnClickListener(){

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

Intent intent = new Intent();

intent.setClass(AndroidBluetooth.this, ListPairedDevicesActivity.class);

startActivityForResult(intent, REQUEST_PAIRED_DEVICE);

}};

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

// TODO Auto-generated method stub

if(requestCode == REQUEST_ENABLE_BT){

CheckBlueToothState();

}if (requestCode == REQUEST_PAIRED_DEVICE){

if(resultCode == RESULT_OK){

}

}

}

}

AndroidManifest.xml

package="com.test.AndroidBluetooth"

android:versionCode="1"

android:versionName="1.0">

android:label="@string/app_name">

android:label="AndroidBluetooth: List of Paired Devices"/>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值