마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

데이터 전달이 안됨니다.......ㅠ

0 추천

다음과 같이 핸들러에 인텐트를 집어넣어서 작업을 하고있는데요 

메인 액티비티에서 유니티플레이어액티비티로 넘어 오지 않고 있습니다.

로그캣창에도 받는 데이터를 표시하기 위한 코드도 작성을 하였습니다.

로그캣창에 이런 문구 출력이 되었습니다.

    I : /data/font/config/dfactpre.dat, No such file or directory (2)
    I : /data/font/config/sfconfig.dat, No such file or directory (2)

안 넘오는 이유와 해결방안을 받고 싶습니다.

메인 액티비티

mHandler = new Handler(){    //블루투스 데이터 수신 핸들러

    public void handleMessage(Message msg){

        if(msg.what == MESSAGE_READ){

            try {
                readMessage = new String((byte[]) msg.obj, "UTF-8");
                if((readMessage.indexOf("s") == 0) && (readMessage.indexOf("e") == 21))  {
                    if(readMessage != null) { // readmessage와 null(빈값)은 같지 않다
                        String str = readMessage;
                        test = readMessage.split("");
                        str0 = readMessage.substring(0,22);    

                        // 모듈에서 넘어오는 데이터에 부호(+,-)값이 포함 되있음
                        // indexof에 부호값까지 포함함

                    }
                    else if(readMessage == null){
                        readMessage = str0;

                    }

                }
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }

            mReadBuffer.setText(str0);

            dbHelper.insert(readBuffer_X, readBuffer_Y, readBuffer_Z);
            String ip = "123456";
            String test1 = str0;
            Intent intent = new Intent(MainActivity.this,UnityPlayerActivity.class);
            intent.putExtra("test1",test1);
            intent.putExtra("test",ip)
        }

        if(msg.what == CONNECTING_STATUS){
            if(msg.arg1 == 1)
                mBluetoothStatus.setText("Connected to Device: " + (String)(msg.obj));
            else
                mBluetoothStatus.setText("Connection Failed");
        }
    }
};
 

서브 액티비티

protected void onCreate(Bundle savedInstanceState)
{
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);

    mTask = new TimerTask() {
        @Override
        public void run() {
            Intent intent = getIntent();   // 인텐트로 받아오기
            String name =  intent.getStringExtra("test");
            String name1 =  intent.getStringExtra("test1");
            if (name !=null)
                Log.i("test", name);
            if(name1 != null)
                Log.i("test1",name1);
            }
    };
    mTimer = new Timer();
    mTimer.schedule(mTask,0,2000);


    mUnityPlayer = new UnityPlayer(this);
    setContentView(mUnityPlayer);
    mUnityPlayer.requestFocus();
}

//  유니티 3d에서 호출하는 함수
public void CallAndroid(String Msg){
    String Message = getIntent().getStringExtra("test1");
    UnityPlayer.UnitySendMessage("GameObject","CallUnity", Message);

 

익명사용자 님이 2018년 6월 21일 질문
2018년 6월 21일 수정

1개의 답변

0 추천
 
채택된 답변
intent 에 값을 put 하는 코드는 있지만 실제 해당 intent를 SubActivity에 전달하는 코드가 안보입니다. startActivity 같은것을 불러 SubActivity 로 intent정보를 넘겨주셔야 할 듯 합니다.
익명사용자 님이 2018년 6월 21일 답변
...