측정모듈에서 측정한값을 블루투스를 통해서 안드로이드에 들어오고 그값을 db에 저장 및 유니티액티비티(유니티프로젝트를 Gradle export해서 안드로이드 스튜디오에 import함)로 넘겨서 unityplaler.unitysendmessage로 값을 유티니로 보내서 그 값으로 움직이는 오브젝트를 만들려고 합니다 .
유니티플레이어액티비티 전환시에도 값을 받아서 db에 저장을 하는걸 확인 db베이스를 통해서 확인을 하였는데요.
메인 액티비티에서 센서값을 string으로 지정해서 intent.putExtra를 이용해서 유니티 플레이어 액티비티 보내니까 처음에 들어가는 측정값만 로그에 계속 출력이되고 센서를 움직여도 측정값에 변화가 없어서 질문드립니다.
메인 액티비티에서 측정값이 handler로 들어갑니다.
여기서 핸들러 값을 유니티 플레이어 액티비티로 보낼려면 어떻게 해야되나요?
코드는 다음과 같이 작성을 하였습니다
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);
}
if(msg.what == CONNECTING_STATUS){
if(msg.arg1 == 1)
mBluetoothStatus.setText("Connected to Device: " + (String)(msg.obj));
else
mBluetoothStatus.setText("Connection Failed");
}
}
};
....
....
// UnityPlayerActivity로 화면 전환 및 str0값 전달
@Override
public void onClick(View v) {
String test0 = str0;
String ip = "123456";
Intent intent = new Intent(this, UnityPlayerActivity.class);
intent.putExtra("test",ip);
intent.putExtra("test1",test0);
startActivity(intent);
}