Users/ivanrevelli/Downloads/Firebird.app/Contents/MacOS/firebird/ cd Users/ivanrevelli/Downloads/Firebird.app/Contents/MacOS/ Users/ivanrevelli/Downloads/Firebird.app/Contents/MacOS/firebird/libfbembed.dylib
l’applicazione è disponibile sullo store di google all’indirizzo : https://play.google.com/store/apps/details?id=com.Digifort.MobileClient
1 2 3 4 |
{$IFDEF ANDROID},Androidapi.JNI.GraphicsContentViewText, FMX.Helpers.Android, IdURI, Androidapi.JNI.JavaTypes, Androidapi.Jni.Net, Androidapi.JNIBridge {$ENDIF}; |
The Java TimeInMills is similar to UnixTime but is in Millisenconds, so to convert it :
1 |
JavaTimeinMills := DateUtils.DateTimeToUnix(now) * 1000; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
procedure TfrmTimeDetail.btnShareClick(Sender: TObject); {$IFDEF ANDROID} var Intent: JIntent; CalendarIni: JCalendar; Uri : string; begin Uri := 'content://com.android.calendar/events'; Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_EDIT, TJnet_Uri.JavaClass.parse(StringToJString(TIdURI.URLEncode(uri)))); //Intent.setType(StringToJString('vnd.android.cursor.item/event')); intent.putExtra(StringToJString('beginTime'), DateTimeToUnix( (clDay.Date + teTimeDal.Time)) * 1000 ); intent.putExtra(StringToJString('allDay'), false); intent.putExtra(StringToJString('rrule'), StringToJString('FREQ=YEARLY')); intent.putExtra(StringToJString('endTime'), DateTimeToUnix( (clDay.Date + teTimeAl.Time)) * 1000 ); intent.putExtra(StringToJString('title'), StringToJString(edCommessa.Text)); intent.putExtra(StringToJString('description'), StringToJString(Memo1.Text)); SharedActivity.startActivity(Intent); end; |
The IMEI code is an unique number like the MAC Adrress for the lan on mobile devices… so in this example i have only putted a TButton on the form and wrote this piece of code that i found on the net:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
uses System.IOUtils,IdGlobalProtocols {$IFDEF ANDROID} ,FMX.Helpers.Android, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.Net, Androidapi.JNI.JavaTypes, idUri,Androidapi.IOUtils {$ENDIF ANDROID} {$IFDEF MSWINDOWS }, WinAPI.ShellApi, WinAPI.Windows {$ENDIF} {$IFDEF ANDROID} ,Androidapi.JNI.Telephony, Androidapi.JNI.Provider, Androidapi.JNIBridge, Androidapi.Jni, Androidapi.JNI.Dalvik {$ENDIF ANDROID}; procedure TfrmMain.Button1Click(Sender: TObject); var {$IFDEF ANDROID} obj: JObject; tm: JTelephonyManager; {$ENDIF} identifier: String; begin {$IFDEF ANDROID} obj := SharedActivityContext.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE); if obj <> nil then begin tm := TJTelephonyManager.Wrap( (obj as ILocalObject).GetObjectID ); if tm <> nil then identifier := JStringToString(tm.getDeviceId); end; if identifier = '' then identifier := JStringToString(TJSettings_Secure.JavaClass.getString(SharedActivity.getContentResolver,TJSettings_Secure.JavaClass.ANDROID_ID)); {$ENDIF ANDROID} ShowMessage(identifier); end; |
Platform : Delphi XE5 Update 2 Only a function to open file in Windows,Android, Ios…. Windows –> shellExecute Android –> sending an intent to SO Ios –> using NSUrl
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
uses ... IdGlobalProtocols,{$IFDEF MSWINDOWS}, WinFolderSelectUtils {$ENDIF} {$IFDEF MSWINDOWS }, WinAPI.ShellApi, WinAPI.Windows {$ENDIF} {$IFDEF ANDROID} ,FMX.Helpers.Android, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.Net, Androidapi.JNI.JavaTypes, idUri,Androidapi.IOUtils {$ENDIF ANDROID} {$IFDEF IOS} ,iOSapi.Foundation, FMX.Helpers.iOS {$ENDIF IOS}; function OpenURLorFile(URL: string; const DisplayError: Boolean = False): Boolean; {$IFDEF MSWINDOWS} begin ShellExecute(0, 'OPEN', PChar(URL), '', '', SW_SHOWNORMAL); end; {$ELSE} {$IFDEF ANDROID} var Intent: JIntent; idMimeTable: TIdMimeTable; begin // There may be an issue with the geo: prefix and URLEncode. // will need to research if URl.toLower.StartsWith('http://') then Begin Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW, TJnet_Uri.JavaClass.parse(StringToJString(TIdURI.URLEncode(URL)))); End Else Begin try idMimeTable := TidMimeTable.Create; Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); if not url.ToLower.StartsWith('file://') then url := 'file://' + url; Intent.setDataAndType(StrToJURI(Url), StringToJString(idMimeTable.GetFileMIMEType(Url))); Finally try idMimeTable.Free; except end; End; End; 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} {$ENDIF WINDOWS} |