簡體   English   中英

Android:如果用戶想使用導航意圖,如何向用戶顯示應用選擇器?

[英]Android: How to show app picker to user if he wants to use navigation intent?

現在我只有在我的應用程序中有對 GoogleMaps 的特殊意圖。 但是有些用戶沒有在他們的設備上安裝 GoogleMaps。 我不想限制用戶只能使用 Google 地圖應用。 有什么辦法可以顯示一些選擇器,它會顯示手機中所有已安裝的導航應用程序以供選擇?

現在我只有 GoogleMaps 意圖:

Intent(Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?"+(map.lastLocation?.run { "saddr=$latitude,$longitude&" }?:"")+"daddr="+dst.run { "$latitude,$longitude&travel_mode=$mapMode" }))

我不確定它是否有幫助,但是您可以使用以下代碼獲取所有使用位置的應用程序列表:

PackageManager pm = getPackageManager();
List packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo applicationInfo : packages) {
Log.d("test", "App: " + applicationInfo.name + " Package: " + 
applicationInfo.packageName);
try {
    PackageInfo packageInfo = pm.getPackageInfo(applicationInfo.packageName, PackageManager.GET_PERMISSIONS);
    //Get Permissions
    String[] requestedPermissions = packageInfo.requestedPermissions;
    if(requestedPermissions != null) {
        for (int i = 0; i < requestedPermissions.length; i++) {
            Log.d("test", requestedPermissions[i]);

            //////////////////////////////////////
            //////////////////////////////////////
            // Look for the desired permission here
            //////////////////////////////////////
            //////////////////////////////////////
        }
    }
} catch (NameNotFoundException e) {
    e.printStackTrace();
}

}

並將以下行添加到您的清單文件中:

<uses-permission android:name="android.permission.GET_TASKS"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM