2017-02-12 5 views
0

AndroidスマートフォンとMindstorms NXTの間でBluetooth接続を試みました。スマートフォンはAndroid 5.1.1のSony Xperia Zlです。アプリケーションは、NXTに番号を送信し、NXTは実行中のプログラムでそれを受信する必要があります。 これは私の現在のソースコードです:Bluetooth IOException:Bluetoothがオフになっています

package com.mona.projektkurs; 

import java.io.IOException; 
import java.io.OutputStreamWriter; 
import java.util.UUID; 

import android.app.Activity; 
import android.bluetooth.BluetoothAdapter; 
import android.bluetooth.BluetoothDevice; 
import android.bluetooth.BluetoothSocket; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.Toast; 


public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    enableBt(); 
} 

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

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 



private BluetoothAdapter adapter; 
    private BluetoothDevice device = null; 
    private BluetoothSocket BTsocket=null; 

public void enableBt(){ 
    adapter = BluetoothAdapter.getDefaultAdapter(); 
    if(!adapter.isEnabled()){ 
     adapter.enable(); 
     connection(); 
    }else{ 
     Toast.makeText(getApplicationContext(),"Error1" , Toast.LENGTH_LONG).show(); 
    } 
} 

public void connection(){ 
    device = adapter.getRemoteDevice("00:16:53:1B:1D:C5"); 
    try{ 
     BTsocket = device.createRfcommSocketToServiceRecord(UUID 
        .fromString("00001101-0000-1000-8000-00805F9B34FB")); 
     BTsocket.connect(); 
     messageWrite(); 
    }catch(IOException e){ 
     Toast.makeText(getApplicationContext(), "Error2"+e.toString(), Toast.LENGTH_LONG).show(); 
    } 
} 

public void messageWrite(){ 
    if(BTsocket != null){ 
     try{ 
      OutputStreamWriter out = new OutputStreamWriter(BTsocket.getOutputStream()); 
      out.write((byte)0x80); // no respond 
      out.write((byte)0x09); // MessageWrite 
      out.write((byte)0x03); // Inbox (0-9) 
      out.write((byte)0x02); // MessageSize 
      out.write((byte)0x49); // Data ("1" == 0x49 ASCII Code) 
      out.write((byte)0x00); // Null termination (/0) 
      BTsocket.close(); 
     }catch(IOException f){ 
      Toast.makeText(getApplicationContext(), "Error3"+f.toString(), Toast.LENGTH_LONG).show(); 


    } 
     } 
    } 

} 

のBluetoothが正常に有効になっているが、ErrorHandlerのはIO.Exceptionをスロー: Bluetoothがオフになっています。 MACアドレスが証明されています。ブルートゥース接続は商用アプリケーションとの間で正常に確立することができます。

すべてのアイデア?

答えて

0

マニフェストにブルートゥースアクセス許可を追加しましたか?

+0

はい、通常と管理者の両方の権限を追加しました。 – Mnchen875

関連する問題