[XE7] 안드로이드 블루투스 활성화 조회와 설정하기

2015.02.12 09:39

일본인 개발자인 山本隆(야마모토 타카시)의 글을 참고해 안드로이드에서 블루투스 활성여부 조회와 설정하는 내용을 공유합니다.

블루투스 활성여부 조회

uses
  Androidapi.JNI.Bluetooth;

procedure TForm2.Button1Click(Sender: TObject);
var
  Adapter: JBluetoothAdapter;
begin
  Adapter := TJBluetoothAdapter.JavaClass.getDefaultAdapter;
  if Adapter.isEnabled then
    ShowMessage('Bluetooth가 활성화 되어있습니다.')
  else
    ShowMessage('Bluetooth가 활성화 되지 않았습니다.');
end;

블루투스 활성화 설정

uses
  Androidapi.JNI.Bluetooth;

procedure TForm2.Button2Click(Sender: TObject);
var
  Adapter: JBluetoothAdapter;
begin
  Adapter := TJBluetoothAdapter.JavaClass.getDefaultAdapter;
  if Adapter.enable then
    ShowMessage('Bluetooth를 활성화합니다.')
  else
    ShowMessage('사용할 수 없습니다.');
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  Adapter: JBluetoothAdapter;
begin
  Adapter := TJBluetoothAdapter.JavaClass.getDefaultAdapter;
  if Adapter.disable then
    ShowMessage('Bluetooth를 비활성화합니다.')
  else
    ShowMessage('사용할 수 없습니다.');
end;

블루투스 권한이 있는지 확인

uses
  Androidapi.Helpers,
  Androidapi.JNI.GraphicsContentViewText;

procedure TForm2.Button3Click(Sender: TObject);
  function HasPermission(const Permission: string): Boolean;
  begin
    Result := SharedActivityContext.checkCallingOrSelfPermission(StringToJString(Permission)) = TJPackageManager.JavaClass.PERMISSION_GRANTED
  end;

begin
  if HasPermission('android.permission.BLUETOOTH') then
    ShowMessage('Bluetooth 통신 권한이 있습니다.')
  else
    ShowMessage('Bluetooth 통신 권한이 없습니다');

  if HasPermission('android.permission.BLUETOOTH_ADMIN') then
    ShowMessage('Bluetooth 설정 수정 권한이 있습니다.')
  else
    ShowMessage('Bluetooth 설정 수정 권한이 없습니다.');
end;

  • 블루투스 관련 권한(Project Options > Uses Permissions)이 필요합니다.
    • Bluetooth
    • Bluetooth admin

샘플프로그램 다운로드

ProjectSetBluetooth.zip

참고 글


저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/기능제어 XE7, 블루투스, 안드로이드

[XE7] 안드로이드 L 스타일팩 다운로드

2015.01.23 11:07

최근 안드로이드 L(롤리팝: 5.0)을 적용한 스마트폰이 나오고 있습니다.


엠바카데로에서도 안드로이드 5.0 지원을 위해 핫픽스를 배포하고 안드로이드 L에 맞는 스타일팩을 배포합니다.


안드로이드 L 스타일팩 활용방법은 Sarina DuPont의 글을 참고하기 바랍니다.

관련 글



저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/UI / UX / 디자인 XE7, 롤리팝, 스타일, 안드로이드, 안드로이드 L

안드로이드에 설치된 앱 목록(AppList)을 표시하는 앱(소스코드 공개)

2015.01.13 12:05

안드로이드 디바이스에 설치된 앱을 빠르게 찾아 실행할 수 있는 안드로이드 앱의 소스코드를 FMXExpress.com에서 공개하였습니다.


해당 앱은 설치된 앱 목록을 표시하고, 항목 선택 시 앱을 실행합니다. 그리고, 검색창을 통해 키워드로 필터링해 빠르게 앱을 검색할 수 있습니다. 기존에는 안드로이드 디바이스에서 페이지 단위로 넘겨가며(Swipe) 앱을 찾던 수고를 크게 줄일 수 있습니다.


이 앱에서는 다음의 기술을 학습할 수 있습니다.

  • 설치된 앱 목록 조회하기
  • 설치된 앱의 아이콘 가져오기
  • 앱 실행(앱의 패키지명, 앱이름으로)
  • ListView 필터링 하기




저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/참고소스 oDesk, 안드로이드

[XE7] 안드로이드 4.4 스타일의 대화상자 사용하기

2015.01.07 10:04

델파이를 이용해 안드로이드 앱개발 시 기본 대화상자(Dialog)는 안드로이드 2.3 버전으로 표시됩니다.

이 이슈는 엠바카데로 커뮤니티 3.0 사이트에 등록되었으며 David I가 직접 답변을 달고 해결방안을 소개했습니다.


결과 적으로 FMX.Helper.Android.pas 유닛의 GetNativeTheme 함수를 수정해 해결할 수 있습니다.

(변경된 소스 적용은 프로젝트에 수정한 파일을 추가해서 간단히 해결할 수 있네요.)



저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/팁과 정보 XE7, 델파이, 안드로이드

[앱 소개] 파생 플러스(KOSPI선물 / 해외선물 모의투자 HTS 시스템) - Delphi XE7/안드로이드

2015.01.06 16:23


(2015년 첫번째 글입니다. 제가 부끄러움이 많아 블로그에서 정보만 전달했는데요. 은근슬쩍 신년인사드립니다. 블로그에 오시는 분들과 델파이, C++빌더, 앱메소드 개발자 분들 모두모두 새해 복 많이 받으세요.^^)


이번 글에서는 피터주혁(데브기어 테크게시판 별칭)님이 개발하신 파생플러스(KOSPI선물 / 해외선물 모의투자 HTS 시스템) 앱을 소개합니다.


이 앱은 델파이 XE7으로 개발되어 안드로이드 마켓에 공개되었습니다. 아래 링크 방문하셔서 다들 다운로드 한번 받아주세요.(이런말은 본인이하기 어려우니 제가 대신 해드립니다.^^)


HTS 시스템의 경우 이미 PC 기반에서 델파이의 강세를 나타내는 영역인데요. 모바일에서도 다시 강세를 나타내는 신호탄이 되길 바라겠습니다.(기회가 되신다면 iOS 앱 스토어도 올려주시면 더 좋겠습니다^^)


앱에 대한 소개를 좀 더 해드리면(사실, 제가 주식을 할줄 모릅니다...)

국내 선물 및 해외선물(호주달러, 캐나다달러, 유로FX, 파운드선물, 크루드오일, S&P 500)을 거래할수 있는 무료 모의 투자 서비스입니다. 모의투자에서 연습 매매후 실전 매매에서 성공투자 하세요.

이라고 합니다.^^


그리고, 사용자 의견을 보니 아직 많지는 않지만 전반적으로 편리하고, 좋다는 의견이 다수입니다.(평점 4.8)


마지막으로, 앱을 설치하며 보인 사소한 의견 몇가지 드립니다^^

  • 사용권한은 꼭 필요한 항목만 선택하기 바랍니다. - 통화, 카메라등의 권한을 선택하면 해당 기능이 없는 디바이스는 해당 앱을 다운로드 받을 수 없습니다. 꼭 필요한 권한만 선택하시기 바랍니다.
  • 앱의 아이콘은 PNG-투명이미지으로 사용하면 원형아이콘의 흰바탕 없이 더 깔끔하게 표현할 수 있을 것 같습니다.
PS - 
개발한 앱을 마켓에 등록하시거나, 홍보가 필요하시면 제 블로그 또는 데브기어 테크게시판으로 알려주시면 소개해 드리겠습니다. 많이 올려주세요.

관련 글



저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 기타정보 XE7, 델파이, 안드로이드

커스텀 폰트 배포와 사용하기(Android/iOS)

2014.12.22 10:28

커스텀 폰트를 배포하고 사용하는 방법을 안내하는 글이 있어 소개합니다.

배포기능을 이용해 폰트를 배포하고 플랫폼 별로 배포된 폰트를 사용하도록 설정할 수 있습니다.

(점점 다양한 종류의 아티클들이 나오고 있어 반갑네요^^)




저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/팁과 정보 Firemonkey, ios, 안드로이드

안드로이드 5.0(Lollipop)에서 실행 시 오류대응 방법

2014.12.03 10:02

안드로이드의 새로운 운영체제인 롤리팝에서 앱 실행 시 스플래쉬 이미지 이후 예외가 발생해 앱이 정상 구동되지 않는 이슈가 발생하고 있습니다.


간단하게 안내해 드리면

안드로이드 5.0(롤리팝)에서 앱 구동 시 EBitmapLoadingFailed 오류가 발생합니다. 해당 오류는 *.fmx에 포함된 TBitmap 데이터를 LoadFromStream으로 읽어 올때 발생하는 것으로 보이며, 해결 방안은 Image등의 컴포넌트에 등록된 이미지를 파일로 배포 후 동적으로 읽어 들이는 방법으로 해결할 수 있습니다.


아래 원문에서는 위 작업을 자동화 할 수 있는 팁과 관련 소스를 제공하며, 더 자세한 내용을 확인할 수 있습니다.

(이탈리아어 이므로 구글 번역기를 통해 번역해서 보시기 바랍니다.)

참고 글

저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/팁과 정보 EBitmapLoadingFailed, 롤리팝, 안드로이드

[XE7] 자체적으로 원격푸쉬알림(GCM, APN) 전송 구현방법

2014.12.03 09:43

스페인의 델파이 개발자(fgonzalez.visiblogs.com/)가 자체적으로 원격푸쉬 알림 기능을 구현한 동영상을 소개합니다.


RAD Studio에서 원격 푸쉬 알림(Remote Push Notification)을 구현하기 위해서는 XE6 버전에 추가된 BaaS 클라이언트 컴포넌트를 통해 가능했는데요. 

이 동영상에서는 IdHttp(안드로이드), TCPClient(iOS) 컴포넌트 등을 활용해 푸쉬 메시지를 전송하고, System.PushNotification 클래스를 활용해 푸쉬 메시지를 수신하는 내용을 소개합니다.


동영상은 스페인어로 이야기를 합니다. 팁을 드리면 유투브의 자막을 한국어로 설정하고 화면과 코드위주로 보시면 충분히 이해할 수 있습니다.


참고 글


저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/기능제어 APN, Firemonkey, gcm, ios, push, Remote Push Notification, 안드로이드

  1. Blog Icon
    석만근

    와우 감사합니다.
    전 서버를 웹페이지로 구현하고 Post방식으로 날렸는데 바로 날리네요;; 구글로 ㅎㅎ
    그리고 왠지 될것 같은데.... 당채 말을 알아들을수가 없네요
    감사합니다. 도움이 많이 될듯합니다.

  2. 그래도 개발자들에게는 코드가 있어 위안이 됩니다^^
    시도해 보시고 팁될만한 것 있으면 공유해주세요.
    감사합니다.^^

  3. Blog Icon
    오진성

    감사합니다 ^^
    잘되네요 근데 궁금증이있는데요
    message를 한글로 보내면 한글이 깨져서 나오든데 ... 어떻게 해결해야하나요 ?

  4. Blog Icon
    정상언

    한글 깨지는 분 저도 고생 좀 했는데
    AData := TStringStream.Create(AJson.ToString) 이부분을

    다음 처럼 하면 되네요
    AData := TStringStream.Create(AJson.ToJSON);

  5. Blog Icon
    키위

    영상을 통해 푸쉬 메세지 전송에 성공 했습니다.
    그런데 푸쉬를 여러개 받으면 받은만큼 아이콘과 알림이 생기는데
    이걸 어떻게 아이콘 하나에 "x개 메세지"로 만들수 있을까요?...
    여기저기 검색을 해봐도 통.. 찾을 수가 없네요.
    보내는놈, 받는놈, manifest file, 서비스.. 어디를 건드려야 하는지도 감이 안잡히네요.ㅡㅡ

  6. Blog Icon
    난다요

    푸시연구 중인데 도저히 모르겠어서 질문올립니다.

    여기 홈페이지에서 동영상 보면서 만들고 있는데요

    다른건 다 이해가 가는데

    DeviceToKen := '';

    이 디바이스토큰값을 어디서 가져오는지 모르겠습니다.

    혹시 아시는분은 자세히 설명좀 부탁드립니다. ㅜㅜ

  7. Blog Icon
    하이요

    종료시에 push를 받고싶은데
    그럴려면 안드로이드 스튜디오의 경우 gradle 파일을 수정하던데...
    델파이에서는 어떻게 해야하나요?

  8. 다음글을 참고해 종료 이벤트를 감지해보세요.
    WillTerminate 이벤트에 푸쉬를 발생하세요.
    http://blog.hjf.pe.kr/114

    푸쉬를 발생하는 내용은 아래 링크를 참고하세요.
    http://docwiki.embarcadero.com/RADStudio/Berlin/en/Mobile_Tutorial:_Using_Notifications_(iOS_and_Android)

파이어몽키 안드로이드 네이티브 컴포넌트(오픈소스) - DPF

2014.12.01 10:42

파이어몽키 멀티-디바이스 앱 개발의 장점은 하나의 소스코드로 여러개의 플랫폼을 개발할 수 있다는 것입니다.

그리고, 또다른 장점은 필요한 경우 네이티브 API와 SDK를 사용할 수 있다는 장점도 있습니다.


위 장점을 최대한 활용한 오픈소스 프로젝트를 소개합니다.

이 오픈소스 프로젝트에서는 안드로이드 네이트브 기능(SDK, API)를 이용해 네이티브 UI와 기능을 갖는 컴포넌트를 제공합니다.

만약, 안드로이드 전용 앱을 만드는 경우 해당 오픈소스를 활용한다면, 기본 컴포넌트 외에도 더 풍부한 컴포넌트를 이용해 앱을 만들 수 있습니다.


Some components:
+ Added TDPFJAlertDialog
+ TDPFJAnalogClock
+ TDPFJButton
+ TDPFJCheckBox
+ TDPFJChronometer
+ TDPFJDatePicker
+ TDPFJDatePickerDialog
+ TDPFJEditText
+ TDPFJImageView
+ TDPFJListView (not completed)
+ TDPFJProgressBar
+ TDPFJProgressDialog
+ TDPFJTextView
+ TDPFJTimePickerDialog
+ TDPFJToast
+ TDPFJView
+ TDPFJRadioButton
+ TDPFJNumberPicker
+ TDPFJSeekBar
+ TDPFJTabHost Component (Tabbed view)
+ TDPFJSpinner Component (Dropdown list)
+ TDPFJTextSwitcher Component (Fade/Slide Texts)
+ TDPFJTextClock
+ TDPFJWebView


그리고, XE5 부터 꾸준히 업그레이드를 제공하고 있는 것도 큰 장점으로 꼽을 수 있습니다.


저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/컴포넌트 dpf, 네이티브, 안드로이드, 컴포넌트

안드로이드 SMS 목록 얻어오기(샘플)

2014.07.14 09:20

러시아의 델파이 개발자가 안드로이드의 SMS 목록을 얻어오는 샘플을 공개했습니다.

해당 블로그를 보니 안드로이드 관련된 아주 다양한 정보들이 있네요. 한번 살펴보시면 많은 도움이 되실 듯 합니다.

단, 러시아어로 되어 있어 구글 자동번역기를 이용하면 될 것 같습니다.



참고



저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/기능제어 Firemonkey, SMS, 샘플코드, 안드로이드

안드로이드에서 ShowModal 사용하기

2014.07.07 09:41

안드로이드에서는 모달폼 개념이 없어 기존에 사용하던 VCL 코드를 그대로 사용할 경우

예상과는 다르게 모달폼이 동작하지 않습니다.


안드로이드에서는 다르게 모달폼을 구현해야 하는데 그 내용을 안내해 드립니다.

주요한 핵심은

  • ShowModal과 익명 메소드(Anonymous Mehtod)를 이용할 것
  • 모달폼의 해제(Free)는 반드시 폼의 FormClose 이벤트에서 CloseAction을 사용해서 해제할 것

다른 내용은 아래의 링크를 통해서 자세히 알아보세요.





저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/팁과 정보 showmodal, 안드로이드

파이어몽키 안드로이드 SDK Full Wrapper 파일

2014.05.21 11:32

RAD Studio XE7 에서는 Java2OP라는 이름으로 자바라이브러리를 델파이 브릿지 파일로 컨버젼하는 툴을 기본 제공합니다.

 - http://blog.hjf.pe.kr/268


아래 글은 XE6 이전 버전 사용자들이 참고할 수 있습니다.


파이어몽키 자료가 상당히 풍부한 FMXExpress(http://www.fmxexpress.com)에서 안드로이드 SDK 전체를 Object Pascal(Delphi)로 변환한 소스코드를 공개했습니다.

파이어몽키로 개발할 경우 제공되는 컴포넌트와 라이브러리 외에도 네이티브 SDK를 직접 제어할 수 있는데요. 그러기 위해서는 안드로이드 SDK를 오브젝트 파스칼에서 사용할 수 있도록 변환(Wrapping)하는 작업이 선행되어야 합니다.

FMXExpress에서는 Java2Pas(http://www.softwareunion.lu/en/downloads/)툴로 안드로이드 소스코드를 Object Pascal로 컨버팅 진행했습니다.



저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/기능제어 SDK, 안드로이드, 파이어몽키

  1. Blog Icon
    에우로카엘

    참고들 하세요.

    uses 구문 때문에 circle error많이나서 하나하나 다 손봐줘야하고,

    xe6에선 androidapi.helpers에 jstring 변환함수 들어가있는데 xe5에 맞춰져있는 것 같네요.

C++빌더 안드로이드 지원 월페이퍼

2014.04.17 10:32


C++ 빌더에서 안드로이드 지원을 축하하는 월페이퍼입니다.




이건 XE5에서 델파이가 안드로이드 지원을 기념한 월페이퍼

참고링크



저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 RAD Studio 정보 C++Builder, 안드로이드

모바일개발 심화

2014.02.06 01:07



안녕하세요. 험프리 김현수입니다.


이글에는 안드로이드와 iOS 개발 시 참고 할만한 글들을 모으려 합니다.

따라가기 형태가 아니며, 내용을 훑어 보시고 필요한 정보는 방문해서 지식을 얻으셨으면 좋겠습니다.


(계속 작성 중입니다. 좋은 정보 있으면 댓글로 알려주세요.)


공통기능

    Android 특화기능

    ▶ Android API 접근

    iOS 특화기능

    ▶ 외부 서비스 연동

    참고정보

    ▶ 공개 소스

    추가자료


    저작자 표시 비영리 동일 조건 변경 허락
    신고
    크리에이티브 커먼즈 라이선스
    Creative Commons License

    험프리.김현수 험프리.김현수 Firemonkey android, Firemonkey, ios, Rad Studio, 네이티브개발, 델파이, 멀티플랫폼, 안드로이드, 파이어몽키

    1. 필요한 정보 남겨주시면 찾아서 추가하겠습니다. 조회 수는 많은데 의견이 너무 없네요^^ 많이 남겨 주세요.

    2. Blog Icon
      반벽이

      델파이로 안드로이드 어플개발에 필요한 정보가 많이 있어서 감사한 마음으로 보고 있습니다
      선리플 후 의견 더 달아볼께요~^^ 감사합니다.

    3. 도움이 되셨다니 너무 좋습니다. 앞으로도 꾸준한 정보 기대하세요^^