자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey 블루투스 바코드스캐너연동 질문입니다.
2017.11.26 21:59
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 바쁜 와중에도 답변을 주시는 분들께 감사 댓글 필수
-----------------------------------------------------------------------------------------------
http://blog.hjf.pe.kr/452 사이트에서 예제 자료를 보고 시도하는중인데요.
다른제품(sp2100)이고 자바를 잘몰라서 잘 연동이 안되네요.ㅠㅠ
포인트모바일사의 제품은 페어링후 데이타를 콜백함수로 수신하고 있던데
제가 테스트하는 제품은 어떤식으로 바코드 스캔데이타를 수신하는지를 모르겠습니다.
브릿지파일 대략의 흐름은
JUniReader = interface(JObject)
커넥트관련...
JOnUniReaderResponseListener = interface(IJavaInstance)
델파이의 이벤트 같은 역활을 하는 것이로 보이고요
JUniReaderInfoVO = interface(JSerializable)
데이타 수신부인듯합니다.
안드로이드스튜디오에서 MainActivity.java 파일을 보면 아주 단순합니다.
@Override
protected void onStart()
{
super.onStart();
if(!UniReader.shared(this).isConnected())
{
UniReader.shared(this).openSession();
}
UniReader.shared(this).setListener(onUniReaderResponseListener); //디바이스 선택창보임
}
OnUniReaderResponseListener onUniReaderResponseListener = new OnUniReaderResponseListener(){
@Override
public void uniReaderDidConnetReset() //상태값표시
{
// TODO Auto-generated method stub
tv.setText("UNIREADER_CONNECT_RESET");
}
@Override
public void uniReaderDidConnect() { //상태값표시
//backPressedCount = 0;
// TODO Auto-generated method stub
tv.setText("UNIREADER_CONNECTED");
}
@Override
public void uniReaderDataReceived(Object data) { //스캔데이트 수신부 , 메모장에 데이타출력
//backPressedCount = 0;
// TODO Auto-generated method stub
//tv.setText("UNIREADER_CONNECTED");
UniReaderInfoVO vo = (UniReaderInfoVO)data;
tmpData += vo.getScanData() + "\n";
//tmpData +=(String)data + "\n"+vo.getScanData();
tvData.setText(tmpData);
//Toast.makeText(MainActivity.this, vo.getScanData(), Toast.LENGTH_SHORT);
}
.
.
.
.
.
}
이런구조입니다. 동작은 잘 되구요.
브릿지파일,자바소스 첨부했습니다.
(업체에서 받은 안드로이드 스튜디오 전체샘플소스 용량이 커서 안올라가네요)
내공 높으신 고수분들의 도움 기다려봅니다.
좋은 하루 되세요 ^^
댓글 3
-
험프리
2017.11.27 09:35
-
과객
2017.11.27 09:42
답변감사합니다.
처음부터 다시 확인해볼께요~~ ^^
-
과객
2017.11.27 14:46
FJUniReader := TJUniReader.JavaClass.init;
첫줄에 생성부터 오류가 나는데
java.lang.runtimeexception:can't create handler inside thread that has not called looper.prepare()
검색해보면 스레드 안에서 스레드 형성시 오류라는데
실행해서 버튼클릭의 위 한줄만 넣어도 에러가 나는데 원인을 알수 있을까요?
Firemonkey 블루투스 바코드스캐너연동 질문입니다.
2017.11.26 21:59
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 바쁜 와중에도 답변을 주시는 분들께 감사 댓글 필수
-----------------------------------------------------------------------------------------------
http://blog.hjf.pe.kr/452 사이트에서 예제 자료를 보고 시도하는중인데요.
다른제품(sp2100)이고 자바를 잘몰라서 잘 연동이 안되네요.ㅠㅠ
포인트모바일사의 제품은 페어링후 데이타를 콜백함수로 수신하고 있던데
제가 테스트하는 제품은 어떤식으로 바코드 스캔데이타를 수신하는지를 모르겠습니다.
브릿지파일 대략의 흐름은
JUniReader = interface(JObject)
커넥트관련...
JOnUniReaderResponseListener = interface(IJavaInstance)
델파이의 이벤트 같은 역활을 하는 것이로 보이고요
JUniReaderInfoVO = interface(JSerializable)
데이타 수신부인듯합니다.
안드로이드스튜디오에서 MainActivity.java 파일을 보면 아주 단순합니다.
@Override protected void onStart() { super.onStart(); if(!UniReader.shared(this).isConnected()) { UniReader.shared(this).openSession(); } UniReader.shared(this).setListener(onUniReaderResponseListener); //디바이스 선택창보임 }
OnUniReaderResponseListener onUniReaderResponseListener = new OnUniReaderResponseListener(){ @Override public void uniReaderDidConnetReset() //상태값표시 { // TODO Auto-generated method stub tv.setText("UNIREADER_CONNECT_RESET"); } @Override public void uniReaderDidConnect() { //상태값표시 //backPressedCount = 0; // TODO Auto-generated method stub tv.setText("UNIREADER_CONNECTED"); } @Override public void uniReaderDataReceived(Object data) { //스캔데이트 수신부 , 메모장에 데이타출력 //backPressedCount = 0; // TODO Auto-generated method stub //tv.setText("UNIREADER_CONNECTED"); UniReaderInfoVO vo = (UniReaderInfoVO)data; tmpData += vo.getScanData() + "\n"; //tmpData +=(String)data + "\n"+vo.getScanData(); tvData.setText(tmpData); //Toast.makeText(MainActivity.this, vo.getScanData(), Toast.LENGTH_SHORT); }
.
.
.
.
.
}
이런구조입니다. 동작은 잘 되구요.
브릿지파일,자바소스 첨부했습니다.
(업체에서 받은 안드로이드 스튜디오 전체샘플소스 용량이 커서 안올라가네요)
내공 높으신 고수분들의 도움 기다려봅니다.
좋은 하루 되세요 ^^
댓글 3
-
험프리
2017.11.27 09:35
-
과객
2017.11.27 09:42
답변감사합니다.
처음부터 다시 확인해볼께요~~ ^^
-
과객
2017.11.27 14:46
FJUniReader := TJUniReader.JavaClass.init;
첫줄에 생성부터 오류가 나는데
java.lang.runtimeexception:can't create handler inside thread that has not called looper.prepare()
검색해보면 스레드 안에서 스레드 형성시 오류라는데
실행해서 버튼클릭의 위 한줄만 넣어도 에러가 나는데 원인을 알수 있을까요?
해당 글(http://blog.hjf.pe.kr/452)에서는 포인트모바일 업체에서 제공한 SDK와 연동하는 내용을 주제로 글이 작성되었습니다.
아마 다른 제품과 연동하시는 경우, 제조사의 자바(안드로이드) 소스코드와 해당 글을 참고하셔서
SDK(*.jar) 파일의 브릿지 파일 재생성 및 코드 재작성이 필요할 것으로 보입니다.
한번 꼼꼼히 살펴보시며 진행해 보시기 바랍니다.
만약, 자체적으로 진행이 어려우시면 데브기어의 개발 컨설팅 과정을 검토해 도움을 받아보시기 바랍니다.(유상)
델파이 전문가가 직접 프로젝트의 어려운 부분을 함께 진행하고, 설명해드립니다.
http://tech.devgear.co.kr/delphi_news/410312