Android Bluetooth開発


今日はBluetooth開発の基礎をお届けします.主にプログラムがBluetoothを検索するとlistを通じて展示され、リアルタイムでソートされ、遠近と信号の強弱が表示されます.
まず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 をサポートしているかどうかを します.