Experimenting with Bluetooth code... Problems
Using a HTC Desire running cyanogenmod 7.03 to debug some new android bluetooth code. Im using the BluetoothChat project to just use a button to turn on/off Bluetooth initially...
Everytime i add something that affects the BluetoothAdapter the application closes
EgmBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (!mBluetoothAdapter.isEnabled())
Causes my application to close
Here's my code in full from JocActivity.java - my main and only java file: A lot of this is commented out, as i have been trying different things, but its basically set up so that when the button is pressed, the the Bluetoothadapter is queried. im trying to get Logcat working but its not telling me much yet :( Any tips? Im thinking it might bew that my SDK is 2.2 compliant, but my phone is 2.3.3 Im downloading 2.3.3 but its slowwwwww here :(
package test.joc;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class JocActivity extends Activity implements OnClickListener{
/** Called when the activity is first created. */
// Debugging
private static final String TAG = "joc";
private static final boolean D = true;
// Intent request codes
private static final int REQUEST_CONNECT_DEVICE_SECURE = 1;
private static final int REQUEST_CONNECT_DEVICE_INSECURE = 2;
private static final int REQUEST_ENABLE_BT = 3;
// Local Bluetooth adapter
private BluetoothAdapter mBluetoothAdapter = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.button1);
button.setOnClickListener(this);
// 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();
Context context = getApplicationContext();
CharSequence text = "Bluetooth enabled!";
int duration = Toast.LENGTH_SHORT;
Toast.makeText(context, text, duration).show();
}
}*/
// Implement the OnClickListener callback
public void onClick(View v) {
// do something when the button is clicked
Context context = getApplicationContext();
int duration = Toast.LENGTH_SHORT;
if(D) Log.e(TAG, "++ ON START ++");
//BluetoothAdapter.enable();
//Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
//InstanceOfAnActivity.startActivity(enableIntent);
/*Intent btInten开发者_StackOverflow中文版t = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
btIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(btIntent);*/
// If BT is not on, request that it be enabled.
// setupChat() will then be called during onActivityResult
// Get local Bluetooth adapter
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (!mBluetoothAdapter.isEnabled()) {/*
Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableIntent, REQUEST_ENABLE_BT);
Toast.makeText(context, "Bluetooth Enabled", duration).show();
// Otherwise, setup the chat session
} else {
//if (mChatService == null) setupChat();*/
Toast.makeText(context, "Ready", duration).show();
}
}
}
You probably need to add bluetooth permission to your AndroidManifest.xml. But please, check your stacktrace in logcat/ddms.
精彩评论