Skocz do zawartości

asm

Członkowie
  • Postów

    3
  • Dołączył

  • Ostatnio

    Nigdy

Posty napisane przez asm

  1. Chodzi o logcat?

    12-26 20:12:30.648: W/dalvikvm(5891): threadid=1: thread exiting with uncaught exception (group=0x40018578)
    12-26 20:12:30.656: E/AndroidRuntime(5891): FATAL EXCEPTION: main
    12-26 20:12:30.656: E/AndroidRuntime(5891): java.lang.StringIndexOutOfBoundsException
    12-26 20:12:30.656: E/AndroidRuntime(5891):     at java.lang.String.substring(String.java:1651)
    12-26 20:12:30.656: E/AndroidRuntime(5891):     at com.example.bt1.MainActivity$ConnectedThread$2.run(MainActivity.java:240)
    12-26 20:12:30.656: E/AndroidRuntime(5891):     at android.os.Handler.handleCallback(Handler.java:587)
    12-26 20:12:30.656: E/AndroidRuntime(5891):     at android.os.Handler.dispatchMessage(Handler.java:92)
    12-26 20:12:30.656: E/AndroidRuntime(5891):     at android.os.Looper.loop(Looper.java:130)
    12-26 20:12:30.656: E/AndroidRuntime(5891):     at android.app.ActivityThread.main(ActivityThread.java:3687)
    12-26 20:12:30.656: E/AndroidRuntime(5891):     at java.lang.reflect.Method.invokeNative(Native Method)
    12-26 20:12:30.656: E/AndroidRuntime(5891):     at java.lang.reflect.Method.invoke(Method.java:507)
    12-26 20:12:30.656: E/AndroidRuntime(5891):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
    12-26 20:12:30.656: E/AndroidRuntime(5891):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
    12-26 20:12:30.656: E/AndroidRuntime(5891):     at dalvik.system.NativeStart.main(Native Method)
  2. Próbuję napisać aplikację która będzie odbierała dane z bluetooth HC-05, wszystko by było dobrze, ale aplikacja zawiesza się gdy czyści bufor. Gdy zakomentuję linijkę czyszczenia bufora aplikacja się nie zawisza. W czym tkwi problem.

    public void run() {
    
               byte[] buffer = new byte[1024];
               int bytes;
               //final StringBuilder sBuffer = new StringBuilder("");
               final StringBuffer sBuffer = new StringBuffer("");
    
               while (true)
               {
                   try
                   {
                        // Read from the InputStream
    
                	   bytes = mmInStream.read(buffer);
    
                        if(bytes > 0)
                        {
                        	byte[] newbuffer = new byte[bytes];
                        
                        	for(int i = 0; i < bytes; i++)
                        		newbuffer[i] = buffer[i];
    
                        
                        	final String data2 = new String(newbuffer, "US-ASCII");
                        	handler.post(new Runnable()
    	                    {
    	                        public void run()
    	                        {
    	                        	if(data2.indexOf('>')==-1)
    	                        	{
    	                        		sBuffer.append(data2);
    		                       }
    	                        	else
    	                        	{
    	                        		sBuffer.append(data2);
    	                        
    		                        	String data=new String(sBuffer);
    	                        
    		                        	data=data.substring(data.indexOf('<')+1,data.indexOf('>'));
    		                        	String[] lista = data.split("#");
    		                        	tvVoltage.setText(" ");
    		                        	tvVoltage.setText(data);
    		                        	sBuffer.delete(0, sBuffer.length()); // Gdy zakomentuję tę linię aplikacja nie zawiesza się
    	                        	}
    	                        }
    	                    });
                        }
                   }
                   catch (IOException e)
                    {
                    	Log.e("BT", "watcher", e);
                    	break;
                    }
                }
            }

     

×
×
  • Utwórz nowe...