1

代码。

    BluetoothAdapter ba;
 ba=BluetoothAdapter.getDefaultAdapter();
    b1=(Button)findViewById(R.id.button1);
    b1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {



            if(ba==null)
            {

            }
            else if(ba.isEnabled()==false)
            {
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setCancelable(false);
                builder.setTitle("Settings");
                builder.setMessage("Do you Want to Turn on Bluetooth ?");
                builder.setPositiveButton("OK", new DialogInterface.OnClickListener()
                {
                    @Override
                    public void onClick(DialogInterface arg0, int arg1) 
                    {
                        Intent m=new Intent(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS);
                    }
                });

                builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
                {             public void onClick(DialogInterface dialog, int which) {      
                    dialog.cancel();           
                    }      
                });         
                builder.create().show();
            }
        }
    });

这是我的代码,我试图通过单击按钮来检查蓝牙是否启用。但是当我单击按钮时,应用程序崩溃了..

如何解决这个问题?我认为错误是,isEnabled() 方法返回 NULL 值。我不确定这个错误。

4

2 回答 2

0

您是否启用了访问蓝牙的权限?

于 2013-10-30T08:06:51.187 回答
-1

首先,如果您这样做,您的代码会容易得多:

 BluetoothAdapter ba = BluetoothAdapter.getDefaultAdapter();
    b1=(Button)findViewById(R.id.button1);
    b1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {

            if(ba != null || !ba.isEnabled())
            {
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setCancelable(false);
                builder.setTitle("Settings");
                builder.setMessage("Do you Want to Turn on Bluetooth ?");
                builder.setPositiveButton("OK", new DialogInterface.OnClickListener()
                {
                    @Override
                    public void onClick(DialogInterface arg0, int arg1) 
                    {
                        Intent m=new Intent(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS);
                    }
                });

                builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
                {             public void onClick(DialogInterface dialog, int which) {      
                    dialog.cancel();           
                    }      
                });         
                builder.create().show();
            }
        }
    });

所以你的问题是,如果你检查 null 并且它是 null 然后你检查它是否被启用,但是 ba 对象是 null 它下面的代码必须工作

于 2013-10-30T08:15:47.560 回答