2012-06-07 3 views
0

블루투스 채팅 응용 프로그램 (샘플 코드 here)을 실행하고 싶습니다.안드로이드 블루투스 응용 프로그램에서 "연결되지 않음"

나는 이것을 android2.2에서 실행하지만 그것은 내게 : not connected 장치에 있습니다.

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if(D) Log.e(TAG, "+++ ON CREATE +++"); 

    // Set up the window layout 
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
    setContentView(R.layout.main); 
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title); 

    // Set up the custom title 
    mTitle = (TextView) findViewById(R.id.title_left_text); 
    mTitle.setText(R.string.app_name); 
    mTitle = (TextView) findViewById(R.id.title_right_text); 

    // Get local Bluetooth adapter 
    mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 

    // If the adapter is null, then Bluetooth is not supported 
    if (mBluetoothAdapter == null) { 
     Toast.makeText(this, "Bluetooth is not available", Toast.LENGTH_LONG).show(); 
     finish(); 
     return; 
     } 
    } 

@Override 
public void onStart() { 
    super.onStart(); 
    if(D) Log.e(TAG, "++ ON START ++"); 

    // If BT is not on, request that it be enabled. 
    // setupChat() will then be called during onActivityResult 
    if (!mBluetoothAdapter.isEnabled()) { 
     Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); 
     startActivityForResult(enableIntent, REQUEST_ENABLE_BT); 
    // Otherwise, setup the chat session 
    } else { 
     if (mChatService == null) setupChat(); 
    } 
} 

@Override 
public synchronized void onResume() { 
    super.onResume(); 
    if(D) Log.e(TAG, "+ ON RESUME +"); 

    // Performing this check in onResume() covers the case in which BT was 
    // not enabled during onStart(), so we were paused to enable it... 
    // onResume() will be called when ACTION_REQUEST_ENABLE activity returns. 
    if (mChatService != null) { 
     // Only if the state is STATE_NONE, do we know that we haven't started already 
     if (mChatService.getState() == BluetoothChatService.STATE_NONE) { 
      // Start the Bluetooth chat services 
      mChatService.start(); 
     } 
    } 
} 

private void setupChat() { 
    Log.d(TAG, "setupChat()"); 

    // Initialize the array adapter for the conversation thread 
    mConversationArrayAdapter = new ArrayAdapter<String>(this, R.layout.message); 
    mConversationView = (ListView) findViewById(R.id.in); 
    mConversationView.setAdapter(mConversationArrayAdapter); 

    // Initialize the compose field with a listener for the return key 
    mOutEditText = (EditText) findViewById(R.id.edit_text_out); 
    mOutEditText.setOnEditorActionListener(mWriteListener); 

    // Initialize the send button with a listener that for click events 
    mSendButton = (Button) findViewById(R.id.button_send); 
    mSendButton.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      // Send a message using content of the edit text widget 
      TextView view = (TextView) findViewById(R.id.edit_text_out); 
      String message = view.getText().toString(); 
      sendMessage(message); 
     } 
    }); 

    // Initialize the BluetoothChatService to perform bluetooth connections 
    mChatService = new BluetoothChatService(this, mHandler); 

    // Initialize the buffer for outgoing messages 
    mOutStringBuffer = new StringBuffer(""); 
} 

@Override 
public synchronized void onPause() { 
    super.onPause(); 
    if(D) Log.e(TAG, "- ON PAUSE -"); 
} 

@Override 
public void onStop() { 
    super.onStop(); 
    if(D) Log.e(TAG, "-- ON STOP --"); 
} 

@Override 
public void onDestroy() { 
    super.onDestroy(); 
    // Stop the Bluetooth chat services 
    if (mChatService != null) mChatService.stop(); 
    if(D) Log.e(TAG, "--- ON DESTROY ---"); 
} 

private void ensureDiscoverable() { 
    if(D) Log.d(TAG, "ensure discoverable"); 
    if (mBluetoothAdapter.getScanMode() != 
     BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) { 
     Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); 
     discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300); 
     startActivity(discoverableIntent); 
    } 
} 

/** 
* Sends a message. 
* @param message A string of text to send. 
*/ 
private void sendMessage(String message) { 
    // Check that we're actually connected before trying anything 
    if (mChatService.getState() != BluetoothChatService.STATE_CONNECTED) { 
     Toast.makeText(this, R.string.not_connected, Toast.LENGTH_SHORT).show(); 
     return; 
    } 

    // Check that there's actually something to send 
    if (message.length() > 0) { 
     // Get the message bytes and tell the BluetoothChatService to write 
     byte[] send = message.getBytes(); 
     mChatService.write(send); 

     // Reset out string buffer to zero and clear the edit text field 
     mOutStringBuffer.setLength(0); 
     mOutEditText.setText(mOutStringBuffer); 
    } 
} 

// The action listener for the EditText widget, to listen for the return key 
private TextView.OnEditorActionListener mWriteListener = 
    new TextView.OnEditorActionListener() { 
    public boolean onEditorAction(TextView view, int actionId, KeyEvent event) { 
     // If the action is a key-up event on the return key, send the message 
     if (actionId == EditorInfo.IME_NULL && event.getAction() == KeyEvent.ACTION_UP) { 
      String message = view.getText().toString(); 
      sendMessage(message); 
     } 
     if(D) Log.i(TAG, "END onEditorAction"); 
     return true; 
    } 
}; 

왜 이런 일이 발생합니까?

답변

0

문제는 Bluetooth가 에뮬레이터에서 지원되지 않습니다. 나는 똑같은 문제에 직면 해 있으며 실제 장치에서 모든 Bluetooth 장치를 테스트해야합니다 .- (

관련 문제