2012-10-05 76 views
0

我一直在试图通过这个代码,以获得Android的蓝牙的状态: 我onCreate()方法实例化BluetoothAdapter ...并呼吁blue.isEnabled()这样如何在android中开启/关闭蓝牙?

if(blue.isEnabled()){ 
.... 
} 

但我一直得到这个error..and是我已经宣布所有权限Bluetooth

错误日志

10-05 21:48:16.881: E/AndroidRuntime(538): FATAL EXCEPTION: main 
10-05 21:48:16.881: E/AndroidRuntime(538): java.lang.NullPointerException 
10-05 21:48:16.881: E/AndroidRuntime(538): at com.emazdoor.remind.me.main.onClick(main.java:58) 
10-05 21:48:16.881: E/AndroidRuntime(538): at android.view.View.performClick(View.java:2485) 
10-05 21:48:16.881: E/AndroidRuntime(538): at android.view.View$PerformClick.run(View.java:9080) 
10-05 21:48:16.881: E/AndroidRuntime(538): at android.os.Handler.handleCallback(Handler.java:587) 
10-05 21:48:16.881: E/AndroidRuntime(538): at android.os.Handler.dispatchMessage(Handler.java:92) 
10-05 21:48:16.881: E/AndroidRuntime(538): at android.os.Looper.loop(Looper.java:123) 
10-05 21:48:16.881: E/AndroidRuntime(538): at android.app.ActivityThread.main(ActivityThread.java:3683) 
10-05 21:48:16.881: E/AndroidRuntime(538): at java.lang.reflect.Method.invokeNative(Native Method) 
10-05 21:48:16.881: E/AndroidRuntime(538): at java.lang.reflect.Method.invoke(Method.java:507) 
10-05 21:48:16.881: E/AndroidRuntime(538): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
10-05 21:48:16.881: E/AndroidRuntime(538): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
10-05 21:48:16.881: E/AndroidRuntime(538): at dalvik.system.NativeStart.main(Native Method) 

请帮忙!由于

完整代码

public class main extends Activity implements OnClickListener{ 

    Button CallButton, SMSButton, BirthdayButton, BusinessButton; 
    BluetoothAdapter b1; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.layout_main); 
     b1 = BluetoothAdapter.getDefaultAdapter(); 

     Initialiser(); 

    } 

    private void Initialiser() { 

     CallButton = (Button) findViewById(R.id.CallButton); 
     SMSButton = (Button) findViewById(R.id.SMSButton); 
     BirthdayButton = (Button) findViewById(R.id.BirthdayButton); 
     BusinessButton = (Button) findViewById(R.id.BusinessButton); 


     CallButton.setOnClickListener(this); 
     SMSButton.setOnClickListener(this); 
     BirthdayButton.setOnClickListener(this); 
     BusinessButton.setOnClickListener(this); 


    } 


    public void onClick(View arg0) { 
    switch(arg0.getId()){ 
    case R.id.CallButton: 
     startActivity(new Intent(this, CallRemind.class)); 
     break; 
    case R.id.SMSButton: 
     Toast.makeText(this, "SMS Button", Toast.LENGTH_LONG).show(); 
     startActivity(new Intent(this, SMSReminder.class)); 
     break; 
    case R.id.BirthdayButton: 
     Toast.makeText(this, "Birthday Button", Toast.LENGTH_LONG).show(); 

     b1.enable(); 
     break; 
    case R.id.BusinessButton: 
     Toast.makeText(this, "Business Button", Toast.LENGTH_LONG).show(); 
     break; 
    } 


    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.layout_main, menu); 
     return true; 
    } 



} 
+0

@ user1281750确定我已经更新了代码。 –

回答

1

BluetoothAdapter.getDefaultAdapter()文档:

Returns 
the default local adapter, or null if Bluetooth is not supported on this hardware platform 

你是在模拟器上检查你的代码? 或者也许在没有蓝牙的手机上?

+0

是在模拟器上检查它。让我看看蓝牙支持。 –

+1

Deep voice:[Emulator](http://developer.android.com/tools/devices/emulator.html)有*无蓝牙*支持。 –

+0

那么,在这里你的NullPointerException ....模拟器没有BT ... – Givi