2013-01-01 21 views
7

मैं एक ऐसा एप्लीकेशन लिख रहा हूं जो ब्लूटूथ प्रिंटर को डेटा भेजता है। क्या कोई मेरी मदद कर सकता है ? प्रिंटिंग के लिए मैं एंड्रॉइड ब्लूटूथ स्टैक का उपयोग कैसे कर सकता हूं? या क्या कोई बाहरी एपीआई या एसडीके उपयोग करने के लिए है?एंड्रॉइड ब्लूटूथ प्रिंटिंग

यहाँ

bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
registerReceiver(ActionFoundReceiver, 
     new IntentFilter(BluetoothDevice.ACTION_FOUND)); 

private final BroadcastReceiver ActionFoundReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     String action = intent.getAction(); 
     if (BluetoothDevice.ACTION_FOUND.equals(action)) { 
      BluetoothDevice device = intent 
        .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 
      btArrayAdapter.add(device.getName() + "\n" 
        + device.getAddress()); 
      btArrayAdapter.notifyDataSetChanged(); 
     } 
    } 
}; 

ब्लूटूथ खोज के लिए मेरी कोड है ... और यहाँ प्रिंटर से डेटा भेजने के लिए अपने कोड है ..

BluetoothDevice mDevice = bluetoothAdapter.getRemoteDevice("00:15:FF:F2:56:A4"); 
Method m = mDevice.getClass().getMethod("createRfcommSocket", 
     new Class[] { int.class }); 
mBTsocket = (BluetoothSocket) m.invoke(mDevice, 1); 
System.out.println("Connecting....."); 
mBTsocket.connect(); 
System.out.println("Connected"); 
OutputStream os = mBTsocket.getOutputStream(); 
os.flush(); 
os.write(Receipt.getBytes()); 
// mBTsocket.close(); 

जब मैं socket.close बारे में(), डेटा प्रिंटिंग डेटा से पहले सॉकेट कनेक्शन बंद होने के रूप में प्रिंटर पर प्रिंट नहीं हो रहा है .. और यदि मैंने सॉकेट.क्लोस() लिखा नहीं है तो डेटा केवल एक बार मुद्रित हो रहा है .. मैं डेटा को फिर से शुरू करने तक दूसरी बार प्रिंट नहीं कर पाऊंगा मेरे फोन का ब्लूटूथ।

क्या किसी के पास इसका समाधान हो सकता है ??? या इस प्रिंटिंग से छुटकारा पाने के लिए कोई अन्य तरीका है ??

+0

मैं अपने एंड्रॉइड डिवाइस से अपने ब्लूटूथ समर्थित थर्मल प्रिंटर पर सरल टेक्स्ट भेजना चाहता हूं .. लेकिन मैं उस ब्लूटूथ प्रिंटर को डेटा भेजने के बारे में उलझन में हूं, –

+0

@ निर्वाणबंदारी: मैं इसी तरह की समस्या से फंस गया हूं। मेरा आवेदन काफी वही काम करता है। अगर आप कुछ मदद के लिए संपर्क में आ सकते हैं तो यह बहुत अच्छा होगा। धन्यवाद। :) – Swayam

+0

मुझे अपनी समस्या बताएं –

उत्तर

5

मैं अपने समस्या का समाधान मिल गया ...

अगर मैं डेटा एक से अधिक समय तो तुम न डिवाइस के साथ नए सॉकेट कनेक्शन बनाने की आवश्यकता प्रिंट करना चाहते हैं ... इसके बजाय outputstream.write (बाइट्स) विधि को कॉल करें।

और अंत में यदि आप डिवाइस को डिस्कनेक्ट करना चाहते हैं तो डिवाइस को डिस्कनेक्ट करने के लिए mBTScoket.close() विधि को कॉल करें।

+0

बहुत अच्छा है, कृपया ' स्वीकृत के रूप में मेरा जवाब चिह्नित नहीं है। अपना जवाब चिह्नित करें। coz आपने इसे अपने प्रयास से हल किया –

+0

AndroidManifest.xml में आपने किस अनुमति का उपयोग किया था? –

-1

यदि आपने डिवाइस से कनेक्शन बनाया है और इसे जोड़ा है।

तो मुद्रण के लिए, प्रिंटर बाइट चाहता है। तो मैंने एक मोथोड बनाया है।

बस इस विधि को कॉल करें और मुद्रित होने के लिए स्ट्रिंग को इसके अंदर पास करें।

String str = new String("This is the text sending to the printer");

private void printData() { 
    // TODO Auto-generated method stub 

    String newline = "\n"; 
    try { 
     out.write(str.getBytes(),0,str.getBytes().length); 
     Log.i("Log", "One line printed"); 
    } catch (IOException e) { 
     Toast.makeText(BluetoothDemo.this, "catch 1", Toast.LENGTH_LONG).show(); 
     e.printStackTrace(); 
     Log.i("Log", "unable to write "); 
     flagCheck = false; 
    } 
    try { 
     out.write(newline.getBytes(),0,newline.getBytes().length); 
    } catch (IOException e) {   
     Log.i("Log", "Unable to write the new line::"); 
     e.printStackTrace(); 
     flagCheck = false; 
    } 
    flagCheck = true; 
} 
+0

आपके उत्तर आदमी के लिए धन्यवाद ... वास्तव में मैं प्रिंटर से कनेक्ट करने में असमर्थ था। मैंने एंड्रॉइड डेवलपर वेबसाइट के अनुसार कोशिश की है ... क्या आप मेरी मदद कर सकते हैं मैं अपने एंड्रॉइड डिवाइस को प्रिंटर से कैसे जोड़ सकता हूं? –

+0

कृपया उन प्रश्नों के उत्तर दें जिन्हें मैं यहां पूछ रहा हूं, ताकि मैं आपकी मदद कर सकूं। क्या आपने ब्लूटूथ का उपयोग कर उपकरणों की खोज की है ?? क्या आपको ब्लूटूथ डिवाइस की सूची मिल रही है ?? क्या आपने दो ब्लूटूथ उपकरणों के साथ जोड़ा है ?? –

+0

मैंने खोज ब्लूटूथ के कोड के साथ प्रश्न संपादित किया है और आपने बताया कि ब्लूटूथ को डेटा भेजना है ... कृपया इसकी समीक्षा करें –