2017-08-29 9 views
0

Bluetoothでペアのないデバイスをスキャンします。デバイスはリストに表示されません。 DeviceListAdapterを使用しないという問題がありますか?それがアンドロイドスタジオにはDeviceListAdapterのオプションがないので、デバイスを表示するためにどのオプションを使用する必要があります。アンドロイドスタジオのDeviceListAdapterの代わりにどのメソッドを使用する必要がありますか

これは、ボタンのコードです:

upadapter.addAll(unpaired_list); 

次のように追加すること

btnScan.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick (View v) { 
     if (bluetoothAdapter.isDiscovering()) { 
      bluetoothAdapter.cancelDiscovery(); 
      bluetoothAdapter.startDiscovery(); 
      IntentFilter discoverDeviceIntent = new IntentFilter(BluetoothDevice 
        .ACTION_FOUND); 
      registerReceiver(broadcastReceiver, discoverDeviceIntent); 
     } 
     if (!bluetoothAdapter.isDiscovering()) { 
      bluetoothAdapter.startDiscovery(); 
      IntentFilter discoverDeviceIntent = new IntentFilter(BluetoothDevice.ACTION_FOUND); 
      registerReceiver(broadcastReceiver, discoverDeviceIntent); 

     } 
    } 
}); 

//and here is broadcast_receiver code to receive device 

broadcastReceiver =new BroadcastReceiver() { 
    @Override 
    public void onReceive (Context context, Intent intent) { 
     final String action = intent.getAction(); 
     unpaired_list = new ArrayList<>(); 
     if (action.equals(BluetoothDevice.ACTION_FOUND)) { 
      BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 
      unpaired_list.add(device); 

      Toast.makeText(MainActivity.this, "Showing Unpaired Device", Toast.LENGTH_LONG).show(); 

      final ArrayAdapter upadapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1); 
      unpairlv.setAdapter(upadapter); 
     } 
    } 
}; 
+0

ここで、アップアダプターにunpaired_listを追加していますか? –

+0

どこに追加する必要がありますか?私はArrayAdapterの3番目の引数を渡す必要がありますか? –

+0

そのうまさ...時々、少し間違いを見つけるために1日か2日かかっています...気づいてくれてありがとう...しかし、今では1台のデバイスを一度に表示しています...リストのすべてのデバイスではありません。 。 –

答えて

0

てみすぐ下の行にupadapter作成した後にそれを追加します。

final ArrayAdapter upadapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1); 

編集回答

は、グローバル変数は

ArrayAdapter upadapter; 
ArrayList unpaired_list = new ArrayList<>(); 

のOnCreate()

upadapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1); 

変更broadcastReceiver onReceive方法でこれを追加宣言する。

broadcastReceiver =new BroadcastReceiver() { 
    @Override 
    public void onReceive (Context context, Intent intent) { 
     final String action = intent.getAction(); 
     if (action.equals(BluetoothDevice.ACTION_FOUND)) { 
      BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 
      unpaired_list.add(device); 
      Toast.makeText(MainActivity.this, "Showing Unpaired Device", Toast.LENGTH_LONG).show(); 
      upadapter.add(device); 
      unpairlv.setAdapter(upadapter); 
     } 
    } 
}; 
関連する問題