2010-09-27 23 views
82

HI सब में/अक्षम ब्लूटूथ प्रोग्राम के रूप में सक्षम करने के लिए कैसे,एंड्रॉयड

मैं के माध्यम से program..I निम्नलिखित कोड है/अक्षम ब्लूटूथ सक्षम करना चाहते हैं।

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

लेकिन इस तरह का कोड एसडीके 1.5 में काम नहीं कर रहा है .. मैं एसडीके 1.5 में ऐसा कैसे कर सकता हूं?

+0

कैसे यह काम नहीं कर रहा है में इन अनुमतियों जोड़ें क्या आपको कोई त्रुटि मिल रही है? यदि ऐसा है तो त्रुटि क्या है? –

+0

ब्लूटूथ एडाप्टर एसडीके 1.5 – user458295

उत्तर

25

एंड्रॉइड BluetoothAdapter दस्तावेज़ कहते हैं कि यह एपीआई स्तर 5 के बाद से उपलब्ध है। API Level 5 एंड्रॉइड 2.0 है।

आप ब्लूटूथ एपीआई का बैकपोर्ट उपयोग करने का प्रयास (यह व्यक्तिगत रूप से प्रयास नहीं किया है) कर सकते हैं: http://code.google.com/p/backport-android-bluetooth/

+1

में त्रुटि दिखा रहा है एक कोड स्निपेट यहां बहुत मददगार होगा। –

126

इस कोड को मेरे लिए काम किया ..

//Disable bluetooth 
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();  
if (mBluetoothAdapter.isEnabled()) { 
    mBluetoothAdapter.disable(); 
} 

इसके लिए काम करने के लिए, आपके पास निम्नलिखित अनुमतियां:

<uses-permission android:name="android.permission.BLUETOOTH"/> 
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> 
+0

यह वास्तव में मेरे लिए भी काम करता है। एंड्रॉइड उपकरणों में ब्लूटूथ डिस्कनेक्ट करने के लिए सरल विधि। बहुत दोस्त धन्यवाद –

+6

यदि आप BLUETOOTH_ADMIN अनुमति को जोड़ते हैं तो यह काम है, लेकिन यदि आपको स्टार्टएक्टिविटीफॉर रिसेट (enableBtIntent, 0) का उपयोग करने की आवश्यकता नहीं है; अपने ब्लूटूथ को सक्षम करने के लिए –

+0

आपके उपयोगी उत्तर +1 के लिए धन्यवाद। बस मैं यह जोड़ना चाहता हूं कि इसे कैसे सक्षम किया जाए: mBluetoothAdapter.enable() –

5

प्रिजिन का समाधान मेरे लिए पूरी तरह से काम करता है। यह उल्लेखनीय है कि दो अतिरिक्त अनुमति की जरूरत है सिर्फ उचित है:

<uses-permission android:name="android.permission.BLUETOOTH"/> 
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> 

जब इन जोड़ रहे हैं, को सक्षम करने और डिफ़ॉल्ट ब्लूटूथ एडाप्टर के साथ निर्दोष काम करता है अक्षम हो जाए।

public static boolean setBluetooth(boolean enable) { 
    BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
    boolean isEnabled = bluetoothAdapter.isEnabled(); 
    if (enable && !isEnabled) { 
     return bluetoothAdapter.enable(); 
    } 
    else if(!enable && isEnabled) { 
     return bluetoothAdapter.disable(); 
    } 
    // No need to change bluetooth state 
    return true; 
} 

और अपने मैनिफ़ेस्ट फ़ाइल में निम्न अनुमतियों जोड़ें::

<uses-permission android:name="android.permission.BLUETOOTH"/> 
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> 

लेकिन याद रखें

66

यहाँ यह कर, यह भी enable()\disable() तरीकों की वापसी मान से निपटने का एक सा और अधिक मजबूत तरीका है इन महत्वपूर्ण बिंदुओं:

यह एक असीमित कॉल है: यह तुरंत वापस आ जाएगा, और को अगले एडाप्टर राज्य परिवर्तनों के अधिसूचित होने के लिए ACTION_STATE_CHANGED के लिए सुनना चाहिए। यदि यह कॉल सही हो जाता है, तो एडाप्टर स्थिति तुरंत STATE_OFF से STATE_TURNING_ON, और कुछ समय बाद या तो STATE_OFF या STATE_ON में संक्रमण हो जाएगी। यदि यह कॉल गलत लौटाता है तो तत्काल समस्या होती है जो एडाप्टर को चालू होने से रोकता है - जैसे हवाई जहाज मोड, या एडाप्टर पहले ही चालू है।

अद्यतन:

ठीक है, तो कैसे ब्लूटूथ श्रोता को लागू करने ?:

private final BroadcastReceiver mReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     final String action = intent.getAction(); 

     if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) { 
      final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, 
               BluetoothAdapter.ERROR); 
      switch (state) { 
      case BluetoothAdapter.STATE_OFF: 
       // Bluetooth has been turned off; 
       break; 
      case BluetoothAdapter.STATE_TURNING_OFF: 
       // Bluetooth is turning off; 
       break; 
      case BluetoothAdapter.STATE_ON: 
       // Bluetooth has been on 
       break; 
      case BluetoothAdapter.STATE_TURNING_ON: 
       // Bluetooth is turning on 
       break; 
      } 
     } 
    } 
}; 

और कैसे रजिस्टर करने के लिए/रिसीवर अपंजीकृत?(अपने Activity कक्षा में)

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // ... 

    // Register for broadcasts on BluetoothAdapter state change 
    IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED); 
    registerReceiver(mReceiver, filter); 
} 

@Override 
public void onStop() { 
    super.onStop(); 

    // ... 

    // Unregister broadcast listeners 
    unregisterReceiver(mReceiver); 
} 
+1

यदि आप 'BLUETOOTH_ADMIN' अनुमति जोड़ते हैं तो यह काम करता है, लेकिन यदि आपको 'स्टार्ट एक्टिविटीफॉररेट (सक्षमबीटीन्टेंट, 0) का उपयोग करने की आवश्यकता नहीं है, तो अपने ब्लूटूथ –

+1

को सक्षम करने के लिए ब्लूटूथ एडाप्टर डॉक्स से उद्धृत हाइलाइट की गई जानकारी को विशेष रूप से सक्षम() विधि के लिए उद्धृत किया गया है । –

18

ब्लूटूथ सक्षम करने के लिए आप निम्नलिखित कार्यों में से किसी का उपयोग कर सकता:

public void enableBT(View view){ 
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
    if (!mBluetoothAdapter.isEnabled()){ 
     Intent intentBtEnabled = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); 
     // The REQUEST_ENABLE_BT constant passed to startActivityForResult() is a locally defined integer (which must be greater than 0), that the system passes back to you in your onActivityResult() 
     // implementation as the requestCode parameter. 
     int REQUEST_ENABLE_BT = 1; 
     startActivityForResult(intentBtEnabled, REQUEST_ENABLE_BT); 
     } 
    } 

दूसरा समारोह है:

public void enableBT(View view){ 
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
    if (!mBluetoothAdapter.isEnabled()){ 
     mBluetoothAdapter.enable(); 
    } 
} 

अंतर यह है कि है पहला फ़ंक्शन ऐप को उपयोगकर्ता को ब्लूटूथ को चालू करने या इनकार करने की अनुमति देता है। दूसरा फ़ंक्शन ऐप को ब्लूटूथ पर सीधे चालू करता है।

अक्षम करने के लिए ब्लूटूथ निम्नलिखित समारोह का उपयोग करें:

public void disableBT(View view){ 
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
    if (mBluetoothAdapter.isEnabled()){ 
     mBluetoothAdapter.disable(); 
    } 
} 

नोट/पहला समारोह केवल निम्न अनुमति AndroidManifest.xml फ़ाइल में परिभाषित करने की आवश्यकता:

<uses-permission android:name="android.permission.BLUETOOTH"/> 

है, दूसरे और तीसरे कार्यों को निम्नलिखित अनुमतियों की आवश्यकता है:

<uses-permission android:name="android.permission.BLUETOOTH"/> 
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> 
4

जब मेरा ऐप लॉन्च होता है और ठीक काम करता है तो मैंने बीटी को अक्षम करने के लिए नीचे दिए गए कोड का उपयोग किया था। सुनिश्चित नहीं है कि यह Google के रूप में इसे लागू करने का सही तरीका है "bluetooth.disable();" ब्लूटूथ बंद करने के लिए स्पष्ट उपयोगकर्ता कार्रवाई के बिना।

BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter(); 
    bluetooth.disable(); 

मैंने केवल नीचे दी गई अनुमति का उपयोग किया।

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> 
2

अपने मैनिफ़ेस्ट फ़ाइल में निम्न अनुमतियों जोड़ें:

<uses-permission android:name="android.permission.BLUETOOTH"/> 
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> 

इस

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();  
if (!mBluetoothAdapter.isEnabled()) { 
    mBluetoothAdapter.enable(); 
}else{Toast.makeText(getApplicationContext(), "Bluetooth Al-Ready Enable", Toast.LENGTH_LONG).show();} 

ब्लूटूथ उपयोग bluetooth अक्षम उपयोग को सक्षम इस

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();  
if (mBluetoothAdapter.isEnabled()) { 
    mBluetoothAdapter.disable(); 
} 
0

इस प्रयास करें:

//this method to check bluetooth is enable or not: true if enable, false is not enable 
public static boolean isBluetoothEnabled() 
    { 
     BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
     if (!mBluetoothAdapter.isEnabled()) { 
      // Bluetooth is not enable :) 
      return false; 
     } 
     else{ 
      return true; 
     } 

    } 

//method to enable bluetooth 
    public static void enableBluetooth(){ 
     BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
     if (!mBluetoothAdapter.isEnabled()) { 
      mBluetoothAdapter.enable(); 
     } 
    } 

//method to disable bluetooth 
    public static void disableBluetooth(){ 
     BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
     if (mBluetoothAdapter.isEnabled()) { 
      mBluetoothAdapter.disable(); 
     } 
    } 

प्रकट

<uses-permission android:name="android.permission.BLUETOOTH"/> 
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>