다음과 같이 작성을 하였는데요
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(빈값)은 같지 않다
test = readMessage.split("");
str0 = readMessage.substring(0,22);
str1 = readMessage.substring(1,7); // indexof - 데이터값이 01234 56789 00000 출력될때substring(0,5)일때
str2 = readMessage.substring(8,14); // ex) substring(0,5)이면 01234까지
str3 = readMessage.substring(15,21);
// 모듈에서 넘어오는 데이터에 부호(+,-)값이 포함 되있음
// indexof에 부호값까지 포함함
}
else if(readMessage == null){
readMessage = str0;
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
mReadBuffer.setText(str0);
mRead_X.setText(str1); // setText str1값을 mRead_X에 출력
mRead_Y.setText(str2);
mRead_Z.setText(str3);
String readBuffer_X = mRead_X.getText().toString(); // db에 저장
String readBuffer_Y = mRead_Y.getText().toString();
String readBuffer_Z = mRead_Z.getText().toString();
Intent intent = new Intent(MainActivity.this, UnityPlayerActivity.class);
intent.putExtra("test1",test);
dbHelper.insert(readBuffer_X, readBuffer_Y, readBuffer_Z);
}
if(msg.what == CONNECTING_STATUS){
if(msg.arg1 == 1)
mBluetoothStatus.setText("Connected to Device: " + (String)(msg.obj));
else
mBluetoothStatus.setText("Connection Failed");
}
}
};
서브 액티비티
// Setup activity layout
@Override
protected void onCreate(Bundle savedInstanceState)
{
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
Intent intent = getIntent(); // 인텐트로 받아오기
//String name = getIntent().getStringExtra("test");
String name1 = getIntent().getStringExtra("test1");
//Log.i("test", name);
Log.i("test1", name1);
mUnityPlayer = new UnityPlayer(this);
setContentView(mUnityPlayer);
mUnityPlayer.requestFocus();
}
06-14 23:02:14.272 27985-27985/com.bh.slmple:unityplayer E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.bh.slmple:unityplayer, PID: 27985
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bh.slmple/com.bh.slmple.UnityPlayerActivity}: java.lang.NullPointerException: println needs a message
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2984)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045)
at android.app.ActivityThread.-wrap14(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1642)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)
Caused by: java.lang.NullPointerException: println needs a message
at android.util.Log.println_native(Native Method)
at android.util.Log.i(Log.java:211)
at com.bh.slmple.UnityPlayerActivity.onCreate(UnityPlayerActivity.java:36)
at android.app.Activity.performCreate(Activity.java:6956)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2927)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045)
at android.app.ActivityThread.-wrap14(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1642)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)