카테고리 글 보관함: BlackBerry

블랙베리 프로그램 개발관련 메모…

뭐, 제가 필요한대로 끄적거리는겁니다만…

필요하신분들이 계실수도 있으니까, 공개로 해 두겠습니다. 대부분 링크이기도 하고…

1. BlackBerry JDE 4.6.0 API Reference
http://www.blackberry.com/developers/docs/4.6.0api/index.html

2. BlackBerry – BlackBerry Developer Zone
http://na.blackberry.com/eng/developers/

3. BlackBerry Technical Knowledge CenterDeveloper
http://www.blackberry.com/knowledgecenterpublic/livelink.exe

4. BlackBerry Support Community Forums
http://supportforums.blackberry.com/rim/?category.id=BlackBerryDevelopment

5. BlackBerry – Software Downloads (SK텔레콤용, 한글)
https://www.blackberry.com/Downloads/entry.do?code=8396B14C5DFF55D13EEA57487BF8ED26

6. 블랙베리 시뮬레이터 기종별/버전별/캐리어별 다운로드
http://na.blackberry.com/eng/developers/resources/simulators.jsp

7. 실제 장비에서 디버그를 하기 위해서는 장비의 OS버전과 시뮬레이터의 OS버전이 완전히 같아야 한다.
(이건 시도중… 장비 버전이 4.6.0.307였는데, 이것땜시 216로 내리고 시뮬레이터도 4.6.216을 받고 있는 중입니다. 되는지에 대해서는 나중에 쓰겠습니다. 이클립스 플러그인에 있는 시뮬레이터는 버전이 4.6.0.92… 그래서 4.6.0.92를 구해서 설치하는것이 확실하겠지만… SK텔레콤 데이터를 과연 정상 수신할지에 대해서는 모르기 때문에…)

코드를 요로코롬 짜버리면 어쩌자는거야!!!

베트남쪽이랑 열심히 하다가 모두 이쪽으로 이관되었는데, 특정 메서드에서 값이 모두 0을 뱉어내길래 봤더니만…

저도 자바는 할 줄도 모르면서 하고 있습니다만…

다음 구문이 안된다는것쯤은 알고 있습니다.

  System.arraycopy(_buff, 0, Bytes.toBytes(flag,Global.USE_BIGENDIAN), 0 , 4);
  System.arraycopy(_buff, 4, Bytes.toBytes(StartPos.x,Global.USE_BIGENDIAN), 0 , 4);
  System.arraycopy(_buff, 8, Bytes.toBytes(StartPos.y,Global.USE_BIGENDIAN), 0 , 4);
  System.arraycopy(_buff, 12, Bytes.toBytes(EndPos.x,Global.USE_BIGENDIAN), 0 , 4);
  System.arraycopy(_buff, 16, Bytes.toBytes(EndPos.y,Global.USE_BIGENDIAN), 0 , 4);
  System.arraycopy(_buff, 20, Bytes.toBytes(ViaNum,Global.USE_BIGENDIAN), 0 , 4);

c의 strcpy나 memcpy는 다르게 이녀석은 src가 앞에가고 dst가 뒤에가잖습니까…

그런데, java는 잘 모르는제가 어쩌겠습니까… 한참 뒤져보고 다음으로 수정…

  flag = Bytes.toInt(_buff[idx++], _buff[idx++], _buff[idx++], _buff[idx++], Global.USE_BIGENDIAN);
  StartPos.x = Bytes.toInt(_buff[idx++], _buff[idx++], _buff[idx++], _buff[idx++], Global.USE_BIGENDIAN);
  StartPos.y = Bytes.toInt(_buff[idx++], _buff[idx++], _buff[idx++], _buff[idx++], Global.USE_BIGENDIAN);
  EndPos.x = Bytes.toInt(_buff[idx++], _buff[idx++], _buff[idx++], _buff[idx++], Global.USE_BIGENDIAN);
  EndPos.y = Bytes.toInt(_buff[idx++], _buff[idx++], _buff[idx++], _buff[idx++], Global.USE_BIGENDIAN);
  ViaNum = Bytes.toInt(_buff[idx++], _buff[idx++], _buff[idx++], _buff[idx++], Global.USE_BIGENDIAN);

되는구나…(Bytes클래스는 베트남에서 만들어서 보내준거입니다.)

ㅡㅡ; 음… 심오하구나… 프로그래밍이라는건…

블랙베리 시뮬레이터에서 한글 입력기 설치 안될때 – 메모

뭐, 단순히 저를 위한 메모입니다만…


혹시나 필요하신분들도 계실거 같아서 일단 공개 해놓습니다. 뭐 아시는분은 다 아시겠지만…

제가 사용하는 환경은 JDE 4.6.0(9000 시뮬레이터를 사용하지요)입니다만, 다른 기기들도 마찬가지일듯…

4.7이나 5.0b에서는 어떨지 모르지만 4.6에서는 한글 폰트는 잘 깔리는데(예쁘지는 않지만…) 입력기가 아래와 같이 설치를 거부하는 경우가 있습니다.

특히… 한글입력기가 잘 설치되었다가도, clean한번 해주면 안되는 경우도…

뭐… 사용할 수 없는 응용 프로그램이 필요하다면, 강제로 읽어놓으면(아니면 읽은것 처럼) 하면 될거 같아서 다음과 같은 방법을 사용했습니다.


시뮬레이터 폴더에 9000.xml(뭐 이건 어떤기종 시뮬레이터냐에 따라 다르겠지요) 을 열어서… 아래와 같이 한줄 추가했습니다.

<Application>net.rim.platform.lang.ko</Application>
 

그럼 위와같이 추가되거나 업데이트 됩니다라고 뜹니다.

(한글폰트는 이런짓 안해도 그냥 설치되지만요…)

여기서 당황하지 말아야 할 점은… 설치가 끝나면 아래와같이…


Exception이 뜹니다만… 가볍게 무시하고 시뮬레이터를 종료합니다.

그냥 입력기를 설치하지 않고 이런식으로 입력기를 설치하면… 로컬라이제이션에 ‘한글’이 추가됩니다.

보통은 US나 UK만 나오지요.




여기까지 팁 같지도 않은 팁이었습니다.

한국에서는 블랙베리 어플리케이션 개발하시는분은 몇 없는건가요? 아니면 한글입력기가 필요없는 프로그램만 만드시는건지…

ps. 지난번 교육때 몇가지 기능에 대해 물었을때는 무조건 JDE 5.0에서 나온다고 해놓구선… 막상 JDE 5.0(베타이긴 하지만) API보면 별 차이도 없는거 같아요 ㅡㅡ;

ps2. 맥용 이클립스 플러그인이나 맥용 JDE는 언제 만들어 줄려는겨…