Android:如果用户要使用导航意图,如何向用户显示应用选择器?

问题描述 投票:0回答:1

现在,我仅在我的应用程序中对GoogleMaps有特殊的意图。但是有些用户的设备上没有安装GoogleMaps。我不想限制用户仅使用Google Maps应用。有没有办法显示一些选择器,该选择器将显示他手机中所有已安装的导航应用程序以供选择?

现在我只有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" }))
android android-maps-v2 android-navigation
1个回答
0
投票

我不确定是否有帮助,但是您可以使用以下代码获取使用位置的所有应用的列表:

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"/>
© www.soinside.com 2019 - 2024. All rights reserved.