日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Delphi 10.3 Rio实现FMX应用APP增加Android“应用程序快捷方式”

發(fā)布時間:2023/12/20 Android 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Delphi 10.3 Rio实现FMX应用APP增加Android“应用程序快捷方式” 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Delphi如何向FMX應用程序添加Android“應用程序快捷方式” ?從Android 7.1(API級別25,Delphi 10.3 Rio版本開箱即用)開始,操作系統(tǒng)(特別是OS應用程序)支持新功能啟動器以及大多數(shù)其他啟動器):應用快捷方式。?您可以在Android官方文檔的此位置找到有關此Android功能的所有詳細信息。屏幕截圖顯示了應用程序快捷方式(來自Android的官方文檔)為什么要處理應用程序快捷方式?

當應用程序包含一個或多個主要活動時,快捷方式可能會非常有用,并且使用特定的快捷方式來啟動應用程序并跳轉(zhuǎn)至應用程序內(nèi)的特定活動可能會給用戶帶來好處。還應考慮到大多數(shù)啟動器(從默認啟動器開始)將通過長按應用程序的圖標讓用戶手頭擁有此快捷方式,并有機會在主屏幕上創(chuàng)建類似于應用程序的圖標以觸發(fā)快捷方式。

帶有快捷方式的熱門應用示例:GMail,Google Maps,WhatsApp,SlHangout,Sack等(從今天開始,也許也屬于您:)…

在有關FMX移動開發(fā)的一對一培訓課程中,我的一位客戶要求將此特定功能(于2016年末在Android 7.1 Nougat中引入)在FMX應用中實現(xiàn),因此我深入研究了這個主題(在iOS端也有一個同名兄弟,名為“ 3D touch”,于2015年在iOS9中引入)。

在此博客文章中,我們將通過4個簡單步驟介紹如何向您的Android FMX應用程序添加靜態(tài)快捷方式。我計劃在這個主題上進行更多的擴展(可能在我即將出版的FMX書中,或者在我在意大利的辦公室舉行的移動開發(fā)研討會上,或者在計劃于明年5月8日在德國科隆舉辦的Delphi活動中,例如Delphi Code Camp),涵蓋了動態(tài)快捷方式生成以及iOS方面。

現(xiàn)在,我們將從一個空的FMX應用開始,并將一個靜態(tài)快捷方式添加到該應用。

步驟1:編輯您的Manifest.xml文件

更好的說,編輯您的AndroidManifest.template.xml文件,在intent-filter元素的結束標記之后的活動標記內(nèi)添加以下行。

(...)</intent-filter> <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" /> </activity>

AndroidManifest.template.xml文件將IDE可以使用它來編譯將在最終APK中提供的實際Manifest.xml文件。用戶設備的應用啟動器將查找此信息,以描述您應用的應用快捷方式。

基本上,我們只是引入對另一個XML文件(shortcuts.xml)的引用,我們將在一個適當?shù)奈募A中創(chuàng)建該文件,如下一步所示。

第2步:創(chuàng)建您的quicks.xml文件

稍后我們將看到,文件系統(tǒng)上的位置并不重要,但是例如,您可以將其放置在項目根文件夾中,位于AndroidManifest.template.xml的旁邊。 IDE應該已經(jīng)為您創(chuàng)建了。

<?xml version="1.0" encoding="utf-8"?> <shortcuts xmlns:android="http://schemas.android.com/apk/res/android";> <shortcut android:shortcutId="myshortcut1" android:enabled="true" android:icon="@drawable/andreamagni_128" android:shortcutShortLabel="@string/my_shortcut1" android:shortcutLon_gLabel="@string/my_shortcut1" android:shortcutDisabledMessage="@string/my_shortcut1_disabled"> <intent android:action="android.intent.action.MYACTION1" android:targetPackage="com.embarcadero.Project1" android:targetClass="com.embarcadero.firemonkey.FMXNativeActivity"/> <categories android:name="android.shortcut.conversation"/> </shortcut> </shortcuts>

請注意:

您需要提供唯一的(在您的應用內(nèi))shortcutId值,字符串文字(不是re;
shortcutShortLabel(最好少于10個字符)和shortcutLongLabel(最好少于25個字符)的值是對資源字符串的引用(我們將在本博文的下一步中看到如何為這些條目提供值);
有一個intent元素,您可以在其中指定action屬性。然后,頸椎枕此信息將包含在您的應用可能檢查以確定已觸發(fā)哪個快捷方式的意圖信息中;

同樣,相同的intent元素具有必須與應用程序包名稱匹配的targetPackage屬性(因此請確保相應地將此值更改為您的Delphi項目的名稱);

到目前為止,category元素對我來說還是有點困惑:據(jù)我了解(請參見本頁),只有一個允許的值(對話),并且它是在API級別25中引入的(在API級別中應該有更多可用的值)更高的API級別)。
icon屬性的值為“ @ drawable / andreamagni_128”:我將使用128×128 PNG文件(帶有我的個人資料圖片之一)作為快捷方式的圖標,稍后我們將看到如何在其中包含實際的PNG APK。
步驟3:創(chuàng)建您的strings.xml文件

再次,它在文件系統(tǒng)上的位置并不重要,但是例如,您可以將其放置在項目根文件夾中,即IDE應該為其創(chuàng)建的AndroidManifest.template.xml旁邊。您和在步驟2中創(chuàng)建的shortcuts.xml文件。

<?xml version="1.0" encoding="utf-8"?> <resources> <string name="my_shortcut1">Andrea</string> <string name="my_shortcut1_disabled">Shortcut is disabled</string> </resources>

步驟4:配置部署

現(xiàn)在我們已經(jīng)創(chuàng)建了這兩個額外的xml文件(shortcuts.xml和strings.xml),我們需要在最終部署(APK的構建)中正確包含它們。我們可以在IDE的“部署”頁面(項目->部署)中添加它們,并管理它們在Android平臺上的部署。請注意:

我已經(jīng)編輯了“ Remote Path”值,為strings.xml文件指定了“ res \ values \”,為shortcuts.xml文件指定了“ res \ xml \”(不帶引號);
andreamagni_128.png圖片的條目具有“ res \ drawable \”作為“遠程路徑”值。


僅此而已...真的嗎?

不,不是。但這是為您的應用程序?qū)嶋H定義(靜態(tài))快捷方式所需要的。

如果您在Android 7.1+設備上使用啟用了快捷方式的啟動器(例如,帶有默認啟動器的Nexus 5X)在Android 7.1+設備上構建和部署,您將可以長按該應用程序圖標并顯示快捷方式。

您甚至可以在主屏幕上拖動快捷方式,以在屏幕上顯示一個單獨的圖標來觸發(fā)您的快捷方式。?

這是一個簡短的視頻,顯示了如何顯示快捷方式列表以及將快捷方式之一拖動到主屏幕,以便為該快捷方式創(chuàng)建永久性圖標。

現(xiàn)在,您可能會問自己如何在應用程序級別處理快捷方式,這意味著如何知道您的應用程序是正常啟動還是通過某個快捷方式啟動。

在應用程序中處理快捷方式

為了知道您的應用程序是如何啟動的(是否觸發(fā)了快捷方式),您可以檢查操作系統(tǒng)調(diào)用以啟動應用程序的意圖的動作值。它將包含指定為觸發(fā)的快捷方式的操作屬性的值(如果應用已通過快捷方式啟動),在我們的示例中為“ android.intent.action.MYACTION1”。下面的代碼是一個非常基本的例子,如何達到這個值:

uses Androidapi.JNI.App, Androidapi.JNI.JavaTypes, Androidapi.Helpers;procedure TForm1.FormCreate(Sender: TObject); beginLabel1.Text := 'S: ' + JStringToString( TAndroidHelper.Activity.getIntent.getAction ); end;

然后由您決定從應用程序的角度來處理這種情況。如果您的應用程序具有多個視圖(即,在其上具有標簽控件,則您可能希望顯示特定項目,加載某些特定數(shù)據(jù),執(zhí)行操作…)。


結束語
應用程序快捷方式是Android操作系統(tǒng)的強大功能,在業(yè)務應用程序中可能非常有用。它們可以提高您應用程序的總體可用性,因為您可以提供一種方便快捷的方法來訪問應用程序內(nèi)置的某些功能。

關于這個第一個/基本示例,有很多主題,我想進一步研究一下,但是時間有限,而且我的工作進度很繁忙。因此,我希望您喜歡這個,如果對此有任何疑問,請告訴我。?歡迎加入Delphi知識局QQ群:32422310

總結

以上是生活随笔為你收集整理的Delphi 10.3 Rio实现FMX应用APP增加Android“应用程序快捷方式”的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。