解决方案 »

  1.   

    你接收到的数据是byte数组,自己按照协议转换一下不就可以了吗?
      

  2.   

    您能具体给我讲下或者举个例子告诉我怎么转么?刚开始自学的android,手上第一个尝试的东西就是这个,真的是不会啊......
      

  3.   

    已改成功~~主要是读byte[]的时候要合理将十六进制转换为字符串。
    附代码如下:package com.android.book;import com.android.book.DBAdapter;
    import android.app.Activity;
    import android.content.Intent;
    import android.database.Cursor;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    import android.widget.Toast;public class Nearby extends SerialPortActivity {
    private static final int Oxff = 0;
    TextView tv=null;
    String bookname;
    String str="";
    String str1="";
    String check, check2;
    int find=0;
    int i=1;
    DBAdapter db = new DBAdapter(this);
    @Override
    protected void onDataReceived(final byte[] buffer, final int size) {
           
    runOnUiThread(new Runnable() {
    public void run() {
    if ( tv!= null && size >0) {



    /****************************************************************************/
    str1 = bytesToHexString(buffer);
    int start = str1.indexOf('8');
    int end = str1.indexOf('9');
    while(end<start){
    str1=str1.substring(start);
    start=str1.indexOf('8');
    end=str1.indexOf('9');
    if(start<end-6){
    check=str1.substring(start+1,end);

    /*****************************************************************************/
    if(find==0){
    tv.append(check);
    find=1;
    find(check);
    }
    return;
    }
    if(end==-1)
    break;
    }
    if(start<end-6){
    check=str1.substring(start+1,end);
    if(find==0){
    tv.append(check);
    find=1;
    find(check);
    }
    }

    }
    }
    });

     tv.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    int i = 4;
    Intent intent = new Intent(); 
                intent.setClass(Nearby.this,user9.class); 
                Bundle bundle = new Bundle();
                bundle.putString("name",check);
                bundle.putInt("i", i);
                intent.putExtras(bundle);
                startActivity(intent); 
    }
    });
       
    }/************************** string to 16 *******************************************/

    public static String bytesToHexString(byte[] src)
    {
    StringBuilder stringBuilder = new StringBuilder("");
    if (src == null || src.length<= 0){
    return null;
    }
    for(int i = 0;i < src.length;i++){
    int v = src[i] & 0xFF;
    String hv = Integer.toHexString(v);
    if(hv.length() < 2){
    stringBuilder.append(0);
    }
    stringBuilder.append(hv);
    }
    return stringBuilder.toString();

    }

    /*******************************************************************/
    private void find(String book)
    {
    int c=0;
          db.open();
            Cursor c1 = db.getISBN(book);
            if (c1.moveToFirst())
            {
             c++;
              //db.updateTitle(c1.getString(0), c1.getString(1), c1.getString(2), c1.getString(3), c1.getString(4), "yes");
            DisplayTitle(c1,tv);
            } while (c1.moveToNext());                db.close();
    }
    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.nearby);        
             Intent intent =this.getIntent();
           
            tv=(TextView)findViewById(R.id.TextView_content);
            
            /*button_return to user1*/
            Button b1 = (Button) findViewById(R.id.Button_return);        
            b1.setOnClickListener(new Button.OnClickListener() 
            {
              public void onClick(View v) 
              { 
                  Intent intent = new Intent(); 
                  intent.setClass(Nearby.this,enter.class); 
                  startActivity(intent);
                Nearby.this.finish();
                } 
              }); 
            
      }

    public void DisplayTitle (Cursor c,TextView tv)
    {
    tv.setText( c.getString(2) + "\n");
    }

    }