8
votes

Comment trouver la version Bluetooth Android?

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?


0 commentaires

4 Réponses :


0
votes
<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

1 commentaires

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?



2
votes

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);


2 commentaires

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:


Indique à Google Play Store de ne pas afficher l'application aux utilisateurs avec des périphériques qui ne prennent pas en charge BT_LE par exemple.



-2
votes

Vous essayez simplement de la manière suivante pour trouver la version Bluetooth.

androidmanifest.xml p> xxx pré>

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;
    }


1 commentaires

Cela ne vous aide pas vraiment à déterminer quelle version de Bluetooth Phone prend en charge



3
votes

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 . (4.0, 4.2, 5.0, ...)

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.

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.

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.


0 commentaires