Back to project page BLERW.
The source code is released under:
Apache License
If you think the Android project BLERW listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/* * Copyright (C) 2013 youten// w ww. j a v a2 s . c o m * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package youten.redo.ble.readwrite; import java.util.List; import youten.redo.ble.util.ScannedDevice; import android.bluetooth.BluetoothDevice; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; /** * ???????????BLE???????????Adapter */ public class DeviceAdapter extends ArrayAdapter<ScannedDevice> { private static final String PREFIX_RSSI = "RSSI:"; private List<ScannedDevice> mList; private LayoutInflater mInflater; private int mResId; public DeviceAdapter(Context context, int resId, List<ScannedDevice> objects) { super(context, resId, objects); mResId = resId; mList = objects; mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public View getView(int position, View convertView, ViewGroup parent) { ScannedDevice item = (ScannedDevice) getItem(position); if (convertView == null) { convertView = mInflater.inflate(mResId, null); } TextView name = (TextView) convertView.findViewById(R.id.device_name); name.setText(item.getDisplayName()); TextView address = (TextView) convertView.findViewById(R.id.device_address); address.setText(item.getDevice().getAddress()); TextView rssi = (TextView) convertView.findViewById(R.id.device_rssi); rssi.setText(PREFIX_RSSI + Integer.toString(item.getRssi())); return convertView; } /** add or update BluetoothDevice */ public void update(BluetoothDevice newDevice, int rssi, byte[] scanRecord) { if ((newDevice == null) || (newDevice.getAddress() == null)) { return; } boolean contains = false; for (ScannedDevice device : mList) { if (newDevice.getAddress().equals(device.getDevice().getAddress())) { contains = true; device.setRssi(rssi); // update break; } } if (!contains) { // add new BluetoothDevice mList.add(new ScannedDevice(newDevice, rssi)); } notifyDataSetChanged(); } }