2013-09-30 3 views
0

Я разрабатываю приложение для передачи сообщений через bluetooth. Я хочу передать одно сообщение с одного устройства на другое устройство (устройство уже сопряжено). Я могу отображать сопряженные устройства. Но я не знаю, как для подключения двух устройств. Может ли кто-нибудь сказать мне, какие шаги следует выполнять. Как создать соединение между двумя телефонами?Android MessagePassing через bluetooth

 public class MainActivity extends Activity { 
    TextView textview1; 
    private static final int REQUEST_ENABLE_BT = 1; 
    BluetoothAdapter btAdapter; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    textview1 = (TextView) findViewById(R.id.textView1); 

    // Getting the Bluetooth adapter 
    btAdapter = BluetoothAdapter.getDefaultAdapter(); 
    textview1.append("\nAdapter: " + btAdapter); 

    CheckBluetoothState(); 
    } 

    /* It is called when an activity completes.*/ 
    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == REQUEST_ENABLE_BT) { 
     CheckBluetoothState(); 
    } 
    } 

    @Override 
    protected void onDestroy() { 
    super.onDestroy(); 
    } 

    private void CheckBluetoothState() { 
    // Checks for the Bluetooth support and then makes sure it is turned on 
    // If it isn't turned on, request to turn it on 
    // List paired devices 
    if(btAdapter==null) { 
     textview1.append("\nBluetooth NOT supported. Aborting."); 
     return; 
    } else { 
     if (btAdapter.isEnabled()) { 
     textview1.append("\nBluetooth is enabled..."); 

     // Listing paired devices 
     textview1.append("\nPaired Devices are:"); 
     Set<BluetoothDevice> devices = btAdapter.getBondedDevices(); 
     for (BluetoothDevice device : devices) { 
      textview1.append("\n Device: " + device.getName() + ", " + device); 
     } 
     } else { 
     //Prompt user to turn on Bluetooth 
     Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); 
     startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); 
     } 
    } 
    } 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 

}

ответ

0

вместо использования textView используйте ListView и добавьте items к нему так же, как вы добавили их textView.

//declaration in class 
ListView lview; 
ArrayAdapter<String> listAdapter; 

//in onCreate() 

lview = (ListView) findViewById(R.id.listPairedDev); 
lview.setOnItemClickListener(this); 

///////here it gets added to list 
ArrayOfDevices = btAdapter.getBondedDevices(); 
        if(ArrayOfDevices.size()>0)//paired dev more than 0 
        { 
         for(BluetoothDevice device: ArrayOfDevices) 
         { 
          listAdapter.add(device.getName()+ "\n" +device.getAddress()); 

         } 
        } 

и читать о том, как добавить анонимный onClickListener или типы listenrs действий. это имеет метод, который выглядит следующим образом:

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 


//Click event on individual item of list. 



} 

при установке выберите событие, установить сервер, который будет слушать ваше сообщение посылая крик. это будет сервер (установленный как сервер, не принимайте мои слова так, как они есть).
перед этим убедитесь, что ваше приложение подключено к серверу, используя поток. вы можете узнать больше об андроидных потоках. подключение к серверу (другое приложение, действующее как сервер), необходимы андроидные разрешения в файле манифеста, такие как bluetooth и администраторы. И не дай бог, если это двухстороннее приложение связи, передающее двухсторонние сообщения, тогда вам нужно сделать то же самое кодирование для обработки сервера, а также клиента в обоих приложениях.

Смежные вопросы