J'ai besoin de trouver de manière programmée une version Android Bluetooth sur le téléphone. Quelqu'un peut-il me conseiller comment faire ça? P>
4 Réponses :
<uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> <uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/> // Use this check to determine whether BLE is supported on the device. Then // you can selectively disable BLE-related features. if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { Toast.makeText(this, R.string.ble_not_supported, Toast.LENGTH_SHORT).show(); finish(); } http://developer.android.com/guide/topics/connectivity/bluetooth-le.html
Il s'agit d'une réponse très aléatoire et il est également incorrect que vous rendez-vous obligatoire dans ce manifeste. Avez-vous lu la question?
IMHO, avec Android, vous pouvez distinguer uniquement la présence de Bluetooth ou Bluetooth_le. Mais je doute du support Android sur l'identification des versions Bluetooth (par exemple BT2.0, BT2.1 + EDR, BT3.0, etc.). Le moyen d'identifier de manière programmative la présence BT ou BLE ne pourrait être que:
PackageManager pm = getActivity().getPackageManager(); boolean isBT = pm.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH); boolean isBLE = pm.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE);
Corrigez-moi si je me trompe, mais ce n'est pas ces vérificateurs techniques pour vérifier si la fonctionnalité Utilisations est définie sur requise ou non:
Vous essayez simplement de la manière suivante pour trouver la version Bluetooth.
androidmanifest.xml p> codage d'écriture dans Oncreate () P> // Adapter for holding devices found through scanning.
private class LeDeviceListAdapter extends BaseAdapter {
private ArrayList<BluetoothDevice> mLeDevices;
private LayoutInflater mInflator;
public LeDeviceListAdapter() {
super();
//mLeDevices = new ArrayList<BluetoothDevice>();
mInflator = DeviceScanActivity.this.getLayoutInflater();
}
public void addDevice(BluetoothDeviceModel device, int rssiValue, String address) {
Log.d("TAG", "map size is : " + mapBluetoothDevice.size());
}
public List<BluetoothDevice> getDevice(int position) {
return mLeDevices.get(position);
}
public void clear() {
mLeDevices.clear();
}
@Override
public int getCount() {
return mLeDevices.size();
}
@Override
public Object getItem(int i) {
return mLeDevices.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder viewHolder;
// General ListView optimization code.
if (view == null) {
view = mInflator.inflate(R.layout.listitem_device, null);
viewHolder = new ViewHolder();
viewHolder.deviceAddress = (TextView) view.findViewById(R.id.device_address);
viewHolder.deviceName = (TextView) view.findViewById(R.id.device_name);
viewHolder.deviceRssi = (TextView) view.findViewById(R.id.device_rssi);
viewHolder.deviceDistance = (TextView) view.findViewById(R.id.device_distance);
view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) view.getTag();
}
BluetoothDevice device = mLeDevices.get(i);
final String deviceName = device.getName();
if (deviceName != null && deviceName.length() > 0)
viewHolder.deviceName.setText(deviceName);
else
viewHolder.deviceName.setText(R.string.unknown_device);
viewHolder.deviceRssi.setText("Version : " + device.getVersion());
viewHolder.deviceAddress.setText(device.getDevice().getBluetoothAddress());
}
viewHolder.deviceDistance.setText("Distance : " + String.valueOf(distance));
return view;
}
Cela ne vous aide pas vraiment à déterminer quelle version de Bluetooth Phone prend en charge
Autant que je sache (et j'ai fait beaucoup de recherches) il n'y a aucun moyen de savoir quelle est la version matérielle de votre périphérique Bluetooth Android fort>. (4.0, 4.2, 5.0, ...) P>
Certaines personnes affirment avoir une application qui peut le faire, mais je n'ai jamais vu un exemple de travail. Ces applications vous montrent beaucoup de numéros de version mais pas la version du matériel Bluetooth. P>
Certaines personnes proposent une astuce qui vous montre le numéro de version du logiciel Bluetooth, mais ce n'est pas ce que nous voulons savoir. P>
Il y a quelques astuces pour obtenir les capacités du périphérique Bluetooth, mais à nouveau, ce n'est pas ce que nous voulons savoir. P>