2012-11-01 19 views
8

का उपयोग कर ब्लूटूथ डिवाइस पर कनेक्शन बनाएं कुछ दिन पहले, मैंने Google Play Store पर ब्लूटूथ स्मार्ट स्कैनर सॉफ़्टवेयर डाउनलोड किया था। इसे अपने सैमसंग गैलेक्सी एस 3 फोन पर स्थापित करने के बाद, मैं अपने ब्लूटूथ ली डिवाइस को सफलतापूर्वक स्कैन कर सकता था।सैमसंग गैलेक्सी एस 3

भले ही मैंने अपने ब्लूटूथ LE डिवाइस को स्कैन करने के सभी तरीकों का प्रयास किया था, मेरे कंप्यूटर पर कुछ भी प्रदर्शित नहीं हुआ था। इसलिए मैंने इस सॉफ़्टवेयर को डीकंपल किया, android.bluetooth पैकेज में startLeDiscovery() विधि थी। लेकिन क्या उलझन में मैं था कि इस विधि Android SDK 15.

की मेरी android.jar अंत में में मौजूद नहीं था, मैं BlutoothAdapter.class फ़ाइल और ब्लूटूथ स्मार्ट स्कैनर सॉफ्टवेयर के उन लोगों के साथ android.jar की BluetoothDevice.class फ़ाइल की जगह है, ताकि मैं सफलतापूर्वक कर सकता ग्रहण में startLeDiscovery() विधि को कॉल करें। नीचे दिखाए गए स्रोत कोड।

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    IntentFilter intent = new IntentFilter(); 
    intent.addAction(BluetoothDevice.ACTION_FOUND); 
    intent.addAction(BluetoothDevice.EXTRA_UUID); 
    intent.addAction(BluetoothDevice.ACTION_GATT_PRIMARY_UUID); 

    registerReceiver(searchDevices, intent); 
    //bluetooth.discovery();  
    bluetooth.startLeDiscovery(); 

    } 
    private BroadcastReceiver searchDevices = new BroadcastReceiver() { 
    public void onReceive(Context context, Intent intent) { 
     String action = intent.getAction(); 
     BluetoothDevice device = null; 

     if (BluetoothDevice.ACTION_FOUND.equals(action)) { 
      device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 
      String msg = device.getName()+"\n"+device.getAddress(); 
      Log.i("hella",msg); 
      bluetooth.cancelDiscovery(); 
      connectDevice(device); 
     } 
    }  
};` 

यह पता चला कि मैं सफलतापूर्वक मैं क्या सोचा के रूप में गैलेक्सी S3 फोन पर मेरी ब्लूटूथ ले डिवाइस स्कैन किया। अन्यथा, मैंने पाया कि com.samsung.bluetoothle पैकेज भी है। वैसे ही, मैंने इसे अपने android.jar में जोड़ा। लेकिन मैं उस पैकेज में उन तरीकों का उपयोग करके अपने LE डिवाइस से कनेक्ट नहीं कर सका।

मैं इस समस्या को हल करने के लिए आपकी मदद से अनुरोध करता हूं जो हमें लंबे समय तक परेशान कर रहा है। विकास को सुविधाजनक बनाने के लिए, मैं वेबसाइट पर अपना android.jar योगदान दूंगा। आपको startLeDiscovery() विधि और android.bluetooth निर्देशिका में अन्य विधियां दिखाई देगी। बेशक, android निर्देशिका में com.samsung.bluetoothle पैकेज भी है।

आप android.jar पैकेज here (Mirror) डाउनलोड कर सकते हैं।

उत्तर

0

android.jar फ़ाइल वर्गों है कि अपने Android डिवाइस पर पहले से ही उपलब्ध हैं माना जाता है: अगर मैं सही ढंग से उन वर्गों APK कि अपने अनुप्रयोग के लिए उत्पन्न होता है में शामिल नहीं हैं याद है, तो android.jar को com.samsung.bluetoothle वर्गों को जोड़ने नहीं होगा उन्हें आपके ऐप में जोड़ा जाता है।

इसे हटाने और android.jar फ़ाइल में जोड़ने के बजाय, सैमसंग की वेबसाइट (http://developer.samsung.com/ble) से बस पूरे एसडीके को डाउनलोड क्यों न करें और केवल अनुशंसित फैशन में इसका उपयोग करें?

0

गैलेक्सी एस 3 ब्लूटूथ लाइब्रेरी का उपयोग करने के लिए ऐप को बताने के लिए आपको अपने AndroidManifest.xml में उपयोग-लाइब्रेरी टैग की आवश्यकता है। सैमसंग ने डेवलपर्स के लिए सार्वजनिक रूप से लाइब्रेरी जारी नहीं की है, इसलिए आपको अपनी खुद की जार फ़ाइल को संकलित करने के लिए बनाना होगा, लेकिन अपने एपीके के पैकेजिंग में जार शामिल न करें।

<uses-library android:name="com.samsung.bluetoothle.BluetoothLEClientProfile" android:required="false" /> 

प्रतिबिंब का उपयोग तरीकों की जरूरत के लिए संदर्भ और उन्हें इस तरह से कॉल करने के लिए बंद आप सबसे अच्छा कर रहे हैं BluetoothAdapter और BluetoothDevice के तरीकों का उपयोग करने के।