2016-04-07 12 views
0

Androidプログラミングの新機能ですが、問題が発生しました。 私はAndroidの携帯電話をBluetoothサーバーとして使用したいと考えています。これは、特別なアクティビティを開いたときに、他のBluetoothデバイス(既にペアになっている)を聞いて、他のデバイスがAndroid携帯電話に接続できることを意味します。だから、それはbtスピーカーのような携帯電話のようなものでなければなりません。 ペアリングはまだ行われています。そして、私はSPPモードを使用しなければならないことを知りました。それが接続されているとき、私は単純なバイトストリームを受信して​​送信したい。 「bluetooth spp tools pro」(https://play.google.com/store/apps/details?id=mobi.dzs.android.BLE_SPP_PRO&hl=de)というアプリが見つかりました。しかし、ここでの問題は、電話機がクライアントとして機能し、接続を開くことです。Android Bluetooth SPP Server

多分私を助けて、私が何をしなければならないかを理解するためのヒントを教えてください。助けのための

感謝:)

EDITは:今、私は、Androidからの例を試してみましたが、それはほとんど働いているように思えます。私はスマートフォンと私のPCを接続することができ、スマートフォンはそれに接続します。しかし、それは、アプリのクラッシュを接続していると私はなぜ知らないとき... 多分あなたはここに...なぜミリアンペアアプリがクラッシュするコードを私に言うことができる:

public class BluetoothServer extends AppCompatActivity { 

public BluetoothAdapter mBluetoothAdapter; 
private static final UUID MY_UUID_SECURE = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); 

private AcceptThread mSecureAcceptThread; 

private TextView textViewStatus; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_bluetooth_server); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    textViewStatus = (TextView) findViewById(R.id.BluetoothServerTextView); 
} 

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    mSecureAcceptThread.cancel(); 
    mSecureAcceptThread = null; 
} 

public void onClickOpenBluetoothServer(View view) { 

    // Setup Bluetooth Adapter 
    mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 

    //Enable Discoverbility 
    Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); 
    discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300); 
    startActivity(discoverableIntent); 
    textViewStatus.append("\nDiscoverable Added!"); 

    //Starting Accepting Thread 
    mSecureAcceptThread = new AcceptThread(); 
    mSecureAcceptThread.start(); 
} 


/** 
* Accepting Thread mit run(); 
*/ 
private class AcceptThread extends Thread { 
    private final BluetoothServerSocket mmServerSocket; 

    public AcceptThread() { 
     BluetoothServerSocket tmp = null; 
     try { 
      // MY_UUID is the app's UUID string, also used by the client code 
      tmp = mBluetoothAdapter.listenUsingRfcommWithServiceRecord("PAKSAFE", MY_UUID_SECURE); 
     } catch (IOException e) { } 
     mmServerSocket = tmp; 
     textViewStatus.append("\nAcceptThread Created!"); 
    } 

    public void run() { 
     BluetoothSocket socket = null; 
     // Keep listening until exception occurs or a socket is returned 
     while (true) { 
      try { 
       textViewStatus.append("\nListening"); 
       socket = mmServerSocket.accept(); 
      } catch (IOException e) { 
       break; 
      } 
      // If a connection was accepted 
      if (socket != null) { 
       // Do work to manage the connection (in a separate thread) 
       //manageConnectedSocket(socket); 
       textViewStatus.setText("Acccepted"); 
       try { 
        mmServerSocket.close(); 
       } catch (IOException e) { 
        break; 
       } 
       break; 
      } 
     } 
    } 

    /** Will cancel the listening socket, and cause the thread to finish */ 
    public void cancel() { 
     try { 
      mmServerSocket.close(); 
     } catch (IOException e) { } 
    } 
} 

}

+0

を見つけることができます。 2番目の質問を新しい質問に移動します。あなたが試したことを示し、より多くの情報を提供してください。このような広い意味でのここでの質問は、ルールに反しています。 – deimus

答えて

0

RFCOMMを作成します。ソケット(シリアルポートプロファイル(SPP)とも呼ばれます)を使用して、着信データを待ち受けます。

AndroidにはAPIがあり、そのためにはBluetoothServerSocketを使用し、受信データを聞きます。

BluetoothServerSocket使い方の例は、元の質問は、あなたの更新の質問とは何の関係もありませんhere

関連する問題