Android Bluetooth開発
今日はBluetooth開発の基礎をお届けします.主にプログラムがBluetoothを検索するとlistを通じて展示され、リアルタイムでソートされ、遠近と信号の強弱が表示されます.
まずjarパッケージが必要です
まず、携帯電話がBluetooth機能をサポートしているかどうかを判断します.
Bluetoothが開いているかどうかを見てみましょう
リストアダプタをフル初期化
まずjarパッケージが必要です
まず、携帯電話がBluetooth機能をサポートしているかどうかを判断します.
if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { Toast.makeText(this, " ", Toast.LENGTH_SHORT).show();
}
Bluetoothが開いているかどうかを見てみましょう
if (!ylwlmanager.isBluetoothEnabled()) {
Toast.makeText(this, " ", Toast.LENGTH_SHORT).show();
}
リストアダプタをフル初期化
private void UIinit() {
final YlwlManager ylwlmanager = YlwlManager.getInstance(mcontext);
newDevicesListView = (ListView) findViewById(R.id.new_devices); deviceAdapter = new DeviceAdapter(this, deviceList); newDevicesListView.setAdapter(deviceAdapter); // button
ylwlmanager.scanLeDevice(true);
ylwlmanager.setYlwlManagerListener(lis);
}
BluetoothリスニングYlwlManagerListener lis = new YlwlManagerListener() {
@Override
public void onUpdateBeacon(final ArrayList<BluetoothDeviceAndRssi> beacons) {
/** * beacon , (BluetoothDeviceAndRssi isConn ) * */ runOnUiThread(new Runnable() {
@Override
public void run() {
deviceList = beacons;
Collections.sort(deviceList);//
deviceAdapter = new DeviceAdapter(DeviceListActivity.this, deviceList);
newDevicesListView.setAdapter(deviceAdapter);
}
});
}
@Override
public void onNewBeacon(BluetoothDeviceAndRssi beacon) {
/** * beacon */ }
@Override
public void onNewBeaconDataChang(BluetoothDeviceAndRssi beacon) {
/** * beacon mac */ }
};
はアダプタコードですpublic class DeviceAdapter extends BaseAdapter {
Context context;
List<BluetoothDeviceAndRssi> devices;
LayoutInflater inflater;
public DeviceAdapter(Context context,
List<BluetoothDeviceAndRssi> devices) {
this.context = context;
inflater = LayoutInflater.from(context);
this.devices = devices;
}
@Override
public int getCount() {
return devices.size();
}
@Override
public Object getItem(int position) {
return devices.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewGroup vg = null;
if (convertView != null) {
vg = (ViewGroup) convertView;
} else {
vg = (ViewGroup) inflater
.inflate(R.layout.device_item, null);
}
BluetoothDeviceAndRssi bluetoothdeviceandrssi = devices
.get(position);
TextView tvadd = ((TextView) vg.findViewById(R.id.address));
TextView tvname = ((TextView) vg.findViewById(R.id.name));
ImageView image_rssi = (ImageView) vg.findViewById(R.id.image_rssi);
byte rssival = (byte) bluetoothdeviceandrssi.getRssi();
if (rssival > (-60)) {
image_rssi.setImageResource(R.drawable.icon_rssi6);
} else if (rssival > (-75)) {
image_rssi.setImageResource(R.drawable.icon_rssi5);
} else if (rssival > (-90)) {
image_rssi.setImageResource(R.drawable.icon_rssi4);
} else if (rssival > (-100)) {
image_rssi.setImageResource(R.drawable.icon_rssi3);
} else if (rssival > (-110)) {
image_rssi.setImageResource(R.drawable.icon_rssi2);
} else {
image_rssi.setImageResource(R.drawable.icon_rssi1);
}
if (bluetoothdeviceandrssi.getBluetoothdevice().getName() == null) {
tvname.setText("Unknow Name");
} else {
tvname.setText(bluetoothdeviceandrssi.getBluetoothdevice()
.getName());
}
tvadd.setText("mac "+ bluetoothdeviceandrssi.getBluetoothdevice().getAddress());
return vg;
}
}
はこんな じ
に なのはAndroidManifestですxml
まず、 がBluetooth をサポートしているかどうかを します.<service
android:name="com.yunliwuli.beacon.kit.service.UartService"
android:enabled="true" />
アクセス <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
over
jarバッグが です. にしてください.
はレベルが られているので, ばないなら き さないでください.
まず、 がBluetooth をサポートしているかどうかを します.