android - arduino से एंड्रॉइड फोन का उपयोग कर चरित्र प्राप्त करें



android-bluetooth (1)

आप एक धागा से पाठदृश्य को अद्यतन कर रहे हैं, यह कुछ अपवाद फेंकना होगा, लेकिन जैसा कि आपने अपने कैच ब्लॉक में कुछ भी मुद्रित नहीं किया है, आपको कोई आउटपुट या त्रुटि या कुछ भी नहीं मिल रहा है, हमेशा याद रखें, आप UI थ्रेड के अलावा किसी भी थ्रेड से दृश्य अपडेट नहीं कर सकते ।

        try {
            int bytesAvailable = btSocket.getInputStream().available();

            byte []packetBytes= new byte[bytesAvailable];
            if (bytesAvailable > 0) {
                tb.setText(bytesAvailable+ "ok");
                btSocket.getInputStream().read(packetBytes);

                         for(int i=0; i<bytesAvailable;i++)
                         {
                            if (packetBytes[i]==65)
                                 tb.setText("ON");
                             else if (packetBytes[i] ==90)
                                 tb.setText("off");
                         }
                   }

        } catch (Exception e) {
         // ADD THIS TO SEE ANY ERROR 
         e.printStackTrace();            
        }

यदि आप इस धागा को गतिविधि वर्ग के अंदर चला रहे हैं तो आप इसे चला सकते हैं

        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                tb.setText("ON")
            }
        });

अन्यथा आप को कुछ गतिविधि प्रसारित करने वाले या इंटरफ़ेस का उपयोग करनी होगी, जो कि आपकी गतिविधि / ट्यूटोरियल में डेटा को पास करने के लिए रनऑन-टू-थ्रू के अंदर पाठवृत्ति को अद्यतन करने के लिए है।

मैंने इस कोड को arduino के एक पत्र प्राप्त करने के लिए काम किया था, जब मैं चाहता हूं कि फोन पाठ दर्शक पर कोई प्रतिक्रिया न दिखाई दे, तो अरुडोनो ने 'ए' पत्र को 'मुझे दिखाता है' और 'जेड' पाठ दर्शक में बंद

ध्यान दें कि एंड्रॉइड फोन के बीच कनेक्शन arduino सफलतापूर्वक किया गया था और एंड्रॉइड फोन arduino को भेजता है लेकिन यह प्राप्त नहीं हुआ

class Ahmed extends Thread {

    public void run() {
        for (; ; ) {
            try {
                int bytesAvailable = btSocket.getInputStream().available();

                byte []packetBytes= new byte[bytesAvailable];
                if (bytesAvailable > 0) {
                    tb.setText(bytesAvailable+ "ok");
                    btSocket.getInputStream().read(packetBytes);

                             for(int i=0; i<bytesAvailable;i++)
                             {
                                if (packetBytes[i]==65)
                                     tb.setText("ON");
                                 else if (packetBytes[i] ==90)
                                     tb.setText("off");
                             }
                       }

            } catch (Exception e) {

            }


        }
    }
}

arduino कोड

   #include<SoftwareSerial.h>
    void setup() {
   Serial3.begin(9600);
  pinMode(13,OUTPUT);
     digitalWrite(13,LOW);
       }

   void loop() {

    char x=Serial3.read();
     if(x=='A')
    {
     digitalWrite(13,HIGH);
      Serial3.print('A');
}
 if(x=='Z')
{digitalWrite(13,LOW);
 Serial3.print('Z');
}
}




android-bluetooth