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

안드로이드 기기간 블루투스 연동하여 데이터 전송하는 과정에서 NullPointerException 오류

0 추천

안녕하세요 한달동안 고민하다가 결국 질문글을 남기게 되네요.

현재 제가 구현하고자 하는 어플은 안드로이드 기기간 블루투스로 연동하여 한쪽에서 다른한쪽의 카메라를 제어하는 

어플리케이션입니다. 현재까지 제가 구현한 것을 간단히 설명드리자면 메인화면은 <원격제어모드> 와 <카메라모드> 

버튼이 있습니다.  해당 버튼을 누르면 각각 <원격제어>화면 과 <카메라프리뷰>가 Intent 되고 해당 화면으로 Intent 된후

바로 <원격제어>화면은 블루투스가 켜진 주변 기기를 검색, 선택, 연결 하도록 하였고 <카메라>화면은 300초간 해당기기

가 주변기기를 검색할수 있도록 허용해주어서 두 기기를 연결하도록 하였습니다. 

원격제어 방법은 간단합니다. <원격제어>기기에서 <원격촬영> 버튼을 누르면 특정한 데이터 (예를들면 String

message="1";) 을 전송하고, <제어받는기기> 에서 데이터를 전송받으면 바로 카메라가 촬영되도록 하는 방법인데

여기서 문제가 <원격제어기기> 에서 <원격촬영> 버튼을 누르면 NullPointerException 이 발생하면서 프로그램이 강제

종료 됩니다 ㅠ_ㅠ   두기기가 제대로 연결된단 것은 로그캣을 통해 확인할 수 있어서 제가 판단하기에 데이터를 보내는

과정에서 오류가 난 것 으로 보입니다.

오류가 난것 같다고 판단되는 클래스들의 소스코드 일부분과  오류시 발생된 로그캣 정보를 첨부하였습니다.

안드로이드 고수분들 부디 저에게 조언을 해주셔서 제가 한단계 발전할 수 있도록 도와주세요. 

/****** 원격제어를 하는 액티비티은 RemoteActivity 클래스 소스 일부분 *******/
private final Handler mHandler = new Handler() {
		@Override
		public void handleMessage(Message msg) {
			super.handleMessage(msg);
			Log.d(TAG,"- HANDLER - ");
            
		}
		
};
	
	
private void sendMessage(String message){
	Log.d(TAG,"sendMessage()");
		
	if(message.length() >0 ) {
		byte[] send = message.getBytes();
		mBluetoothService.write(send);
	}
}	
	
public void onClick(View v){
		
	String message="1";
	sendMessage(message);  // 14.11.09 추가내용
}


/***** 원격제어 받는 액티비티인 CameraActivity 클래스 소스 일부분 ******/
private final Handler mHandler = new Handler() {
	@Override
	public void handleMessage(Message msg){
		super.handleMessage(msg);
		Log.d(TAG," - HANDLER -: ");
            
                mCamera.takePicture(null,null,mPicture);
	}
};


/*******BluetoothChatService 클래스를 참고하여 만든 BluetoothService 클래스 소스 일부분 *******/

public void write(byte[] out) { // Create temporary object
	ConnectedThread r;
	synchronized (this) {
		if (mState != STATE_CONNECTED)
			return;
		r = mConnectedThread;
	} 
	r.write(out);
}

 

 

병장보노 (120 포인트) 님이 2014년 11월 15일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...