开发者

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜