2014-01-10 44 views
0

我在android中啓動了一些程序,我在菜單button中有兩個項目。我在第一個菜單項的一次點擊中調用了兩個函數enableBluetooth()和findDevice()。我想調用findDevice( )在enableBluetooth()函數完成後立即起作用,同一次單擊。這可能嗎?兩個功能在一個按鈕中點擊

這裏是我的代碼

public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    switch (item.getItemId()) { 

    case R.id.retrieve: 
     try { 
      if (!mBluetoothAdapter.isEnabled()) { 
       enableBluetooth(); 

       findDevice(); 

      } 
} catch (Exception e) { 

      Toast.makeText(getApplicationContext(), 
        "cTrcker: Unable to retrive data. Try  again", 
        Toast.LENGTH_LONG).show(); 

     } 
     return true; 
+0

當前代碼的行爲是什麼? – SoulRayder

+0

檢查http://stackoverflow.com/questions/6080818/need-to-programmatically-open-bluetooth-and-discover-devices-in-android – Xavjer

+0

你這樣做的真正做法,調用findDevice()後enableBluetooth()如果不是例外發生這個問題? – FxRi4

回答

1

見您可以使用此

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();  
if (!mBluetoothAdapter.isEnabled()) { 
    Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); 
    startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); 
} 

在此之後發送意圖使blutooth,onActivity結果是這個intent.Then回調方法OnActivityResult如果啓用「你的U可以檢查藍牙可用性可以在那裏調用FindDevice()「方法,或者如果它沒有啓用,你可以讓用戶知道藍牙還沒有啓用或者你想要的東西。

+0

謝謝您的信息 – user3164874

0

爲什麼不把findDevice()enableBluetooth()函數內?

您可以設置一個全局boolean不變,並檢查該常數在enableBluetooth()功能,如果boolean已經被設置爲true這意味着您的應用程序啓用藍牙,請繼續撥打findDevice()簡單。

+0

他發佈的當前代碼也以相同的方式運行。 – SoulRayder

+0

編輯可能會使這個更清晰@Gautham –