Delphi XE5撰寫Android程式常用的unit

Delphi XE5封裝了一些Android相關的api

Androidapi.Jni

Androidapi.JNI.Os

Androidapi.JNI.JavaTypes

Androidapi.JNIBridge

Androidapi.JNI.App

如果在程式中需要呼叫其他的.apk 或 .jar的話呢~則需要使用到

Androidapi.JNI.Dalvik

Androidapi.JNI.GraphicsContentViewText

FMX.Helpers.Android

Delphi XE5深入技術研討會

由李維大師所主持的Delphi XE5深入技術研討會,研討會過後二天,台灣QCom(捷康)就寄來了相關的文件了!

• 瞭解 Delphi XE5 如何在 Android / iOS 環境中運行
• 通往 Android / iOS 環境的重要觀念,類別 / 介面和方法
• 動態呼叫?靜態呼叫?
• 會使用下列幾個實例來說明:

– Delphi XE5 未封裝的 API
– BlueTooth
– Bar Code
– 其他第 3 方函式庫

 

延伸閱讀:
李維大師部落格 IT : 是工作還是嗜好?

捷康科技/Embarcadero 應用程式開發工具 http://embarcadero.qcomgroup.com.tw/

Delphi Xe5 with InfoPower on GooglePlay

InfoPower是一套資料庫開發的元件,現在Woll2Woll Software也將它搬上FireMonkey並且支援Android了!
它們也在Googleplay上放了一個InfoPower FireMonkey Demo 的app讓大家下載試用。

不過壽山看來怎麼好像是在Android上跑Windows 呢?大家可以試看看好了!

 

相關連結:
Woll2Woll Software website : http://www.woll2woll.com/infopower.html

Delphi XE5也可以開發 Google Glass應用

來源: 

中午看到 Jim McKeeth秀出了他把Delphi XE5開發的程式裝在Google Glass上面了!

利用 SysCheck 找到Google Glass處理器是 ARMv7 PRocessor rev 3 (v71) ,系統版本則是 4.0.4 ,符合 Delphi XE5的需求。

在設計上可以使用 Google Mirror API 或 GDK

Google Mirror API是基於REST and JSON 的API,可以輕鬆使用Delphi XE5最新的TRESTClient元件做到。

HelloGlassProjectManager

JimWithGlass

Delphi XE5 App running on Google Glass

原文連結:Hello Google Glass from Delphi XE5

David I 在ZendCon2013的分享影片

Embarcadero裡的David I是我蠻崇拜的前輩,當了44年開發者也不厭倦。

在ZendCon裡示範用Delphi XE5使用 APIs, REST/JSON控制LED、quadcopter以及其他硬體。

螢幕快照 2013-10-31 上午11.18.58

 

Delphi XE5 Update1釋出

delphi_xe5_update1_release
早上打開XE5發現有新的update了
http://docwiki.embarcadero.com/RADStudio/XE5/en/Release_Notes_for_XE5_Update_1

修正的bug如網頁連結:http://edn.embarcadero.com/article/43468

 

下載連結

  •  Update 1 installer (patches an existing install of RAD Studio, Delphi or C++Builder XE5)
  •  ISO with Update 1 (full set of install files for Delphi and C++Builder XE5, including Update 1)

Delphi 歷史~ 1995年Delphi 1- 2013年Delphi XE5

Delphi已經邁向18年的歷史了,幾乎每一年都出了新的版本,而每個版本也幾乎都有令人驚艷的功能存在。

如果您是老Delphi 開發者,不妨可以回鍋體驗Delphi XE5開發 iOS、Android的樂趣。

如果您是新Delphi 開發者,也許可以嘗試使用Delphi XE5開發 iOS、Android的評估。

 

1995-Delphi1(windows3.1)

1996-Delphi2(windows95)

1997-Delphi3

1998-Delphi4(windows98)

1999-Delphi5

2001-Delphi6(dbexpress)

2002-Delphi7

2003-Delphi8(支援.net)

2004-Delphi2005

2005-Delphi2006

2006-Delphi2007

2008-Delphi2009

2009-Delphi2010

2010-Delphi XE

2011-Delphi XE2

2012-Delphi XE3

2013(April)-Delphi XE4 (iOS)

2013(Septemper)-Delphi XE5 (Android)

Click to see full-sized image


Click to see full-sized image

Delphi XE5如何透過URL呼叫Android或iOS上的其他程式?

之前曾經分享過,手機版的Line可以透過 line://msg/<CONTENT TYPE>/<CONTENT KEY> 這樣的語法呼叫Line 的程式分享。

當然Delphi XE5也可以透過程式呼叫程式才對,在 的「Sending a URL to Another App on Android and iOS with Delphi XE5」文章有教您如何呼叫

  • http, tel, sms, fb, mailto, twitter, geo…..
  • 作者也分類成三種:
  • 1. iOS跟Android都可以使用的URLs
  • http://superlevin.ifengyuan.tw/
  • tel://0921789779
  • sms://hello_world
  • http://twitter.com/superlevin (這個語法會直接打開Android上的Twitter Client程式)
  • mailto://superlevin@gmail.com
  • twitter://user?screen_name=superlevin
  • fb://profile/705666540
    (可以透過 http://graph.facebook.com/(帳號)superlevin取得UID)

iOS特殊語法

  • http://maps.apple.com?q=5617 Scotts Valley Drive, Scotts Valley, CA 95066 (需要URL encode)

Android特殊語法

  • content://contacts/people/
  • content://contacts/people/1
  • geo://0,0?q=5617 Scotts Valley Drive, Scotts Valley, CA 95066
  • geo://46.191200, -122.194400 (I think this one doesn’t like the URLEncode)

作者在文中有提到使用TidURL.URLEncode 。

[pascal]
unit OpenViewUrl;

interface

// URLEncode is performed on the URL
// so you need to format it protocol://path
function OpenURL(const URL: string; const DisplayError: Boolean = False): Boolean;

implementation

uses
IdURI, SysUtils, Classes, FMX.Dialogs,
{$IFDEF ANDROID}
FMX.Helpers.Android, Androidapi.JNI.GraphicsContentViewText,
Androidapi.JNI.Net, Androidapi.JNI.JavaTypes;
{$ELSE}
{$IFDEF IOS}
iOSapi.Foundation, FMX.Helpers.iOS;
{$ENDIF IOS}
{$ENDIF ANDROID}

function OpenURL(const URL: string; const DisplayError: Boolean = False): Boolean;
{$IFDEF ANDROID}
var
Intent: JIntent;
begin
// There may be an issue with the geo: prefix and URLEncode.
// will need to research
Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW,
TJnet_Uri.JavaClass.parse(StringToJString(TIdURI.URLEncode(URL))));
try
SharedActivity.startActivity(Intent);
exit(true);
except
on e: Exception do
begin
if DisplayError then ShowMessage(‘Error: ‘ + e.Message);
exit(false);
end;
end;
end;
{$ELSE}
{$IFDEF IOS}
var
NSU: NSUrl;
begin
// iOS doesn’t like spaces, so URL encode is important.
NSU := StrToNSUrl(TIdURI.URLEncode(URL));
if SharedApplication.canOpenURL(NSU) then
exit(SharedApplication.openUrl(NSU))
else
begin
if DisplayError then
ShowMessage(‘Error: Opening "’ + URL + ‘" not supported.’);
exit(false);
end;
end;
{$ELSE}
begin
raise Exception.Create(‘Not supported!’);
end;
{$ENDIF IOS}
{$ENDIF ANDROID}

end.
[/pascal]

Delphi XE5 不同平台使用 SSL/HTTPS

以前在 Delphi 使用 Tidhttp元件時,需要額外載入 OpenSSL的 dll。Delphi XE5開始支援多裝置、多平台的時候,該如何解決呢?

昨天在 Coderage 8時,Olaf Monien的分享,記錄下來避免忘記!不過文中提到Android目前似乎還沒有XD

 

 

連結:

Delphi XE5 : SSL / HTTPS on different platforms with TIdHTTP and TRESTClient


http://www.monien.net/delphi-xe5-ssl-https-on-different-platforms-with-tidhttp-and-trestclient/