码迷,mamicode.com
首页 > 其他好文 > 详细

在第三方应用中打开高德地图的特色功能页面

时间:2016-07-15 21:21:58      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:

由于最近的项目中需要在第三方应用中直接打开高德地图的电子狗页面,在高德开发者论坛找了一遍无果之后,只能自己反编译高德地图来找了,现在记录下来方便大家有类似需求时可以直接找到,这样就不需要反编译了。

高德地图有一些非常方便的特色功能,我们可以直接在第三方应用中打开高德地图的这些特色功能页面方便大家使用,前提是手机上必须要安装高德地图

首先反编译高德地图的APK得到AndroidMainfest.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:versionCode="558"
    android:versionName="7.5.8.2099"
    android:installLocation="0"
    package="com.autonavi.minimap" //得到高德地图的包名
    platformBuildVersionCode="23"
    platformBuildVersionName="6.0-2166767"
    >
    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="23"
        >
    </uses-sdk>
    <uses-permission
        android:name="android.permission.INTERNET"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.ACCESS_NETWORK_STATE"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.CAMERA"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.ACCESS_FINE_LOCATION"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.ACCESS_COARSE_LOCATION"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.WRITE_EXTERNAL_STORAGE"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.READ_CONTACTS"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.ACCESS_WIFI_STATE"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.CHANGE_WIFI_STATE"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.CHANGE_NETWORK_STATE"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.VIBRATE"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.WRITE_SMS"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.SEND_SMS"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.READ_SMS"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.RECORD_AUDIO"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.READ_PHONE_STATE"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.MODIFY_AUDIO_SETTINGS"
        >
    </uses-permission>
    <uses-permission
        android:name="com.android.launcher.permission.INSTALL_SHORTCUT"
        >
    </uses-permission>
    <uses-permission
        android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"
        >
    </uses-permission>
    <uses-permission
        android:name="com.android.launcher.permission.READ_SETTINGS"
        >
    </uses-permission>
    <uses-permission
        android:name="com.autonavi.permission.ACCESS_LOCATION"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.SYSTEM_ALERT_WINDOW"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.RECEIVE_BOOT_COMPLETED"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
        >
    </uses-permission>
    <uses-permission
        android:name="com.google.android.launcher.permission.INSTALL_SHORTCUT"
        >
    </uses-permission>
    <uses-permission
        android:name="com.google.android.launcher.permission.UNINSTALL_SHORTCUT"
        >
    </uses-permission>
    <uses-permission
        android:name="com.google.android.launcher.permission.READ_SETTINGS"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.READ_LOGS"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.GET_TASKS"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.PROCESS_OUTGOING_CALLS"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.ACCESS_FIND_LOCATION"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.WRITE_SETTINGS"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.WAKE_LOCK"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.BROADCAST_PACKAGE_ADDED"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.BROADCAST_PACKAGE_CHANGED"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.BROADCAST_PACKAGE_INSTALL"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.BROADCAST_PACKAGE_REPLACED"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.ACCESS_COARSE_LOCATION"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.READ_PHONE_STATE"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.RESTART_PACKAGES"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.GET_ACCOUNTS"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.RECEIVE_BOOT_COMPLETED"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.CHANGE_CONFIGURATION"
        >
    </uses-permission>
    <uses-feature
        android:name="android.hardware.camera"
        >
    </uses-feature>
    <uses-permission
        android:name="android.permission.BLUETOOTH"
        >
    </uses-permission>
    <uses-permission
        android:name="android.permission.BLUETOOTH_ADMIN"
        >
    </uses-permission>
    <uses-permission
        android:name="com.sec.android.provider.badge.permission.READ"
        >
    </uses-permission>
    <uses-permission
        android:name="com.sec.android.provider.badge.permission.WRITE"
        >
    </uses-permission>
    <uses-permission
        android:name="com.htc.launcher.permission.READ_SETTINGS"
        >
    </uses-permission>
    <uses-permission
        android:name="com.htc.launcher.permission.UPDATE_SHORTCUT"
        >
    </uses-permission>
    <uses-permission
        android:name="com.sonyericsson.home.permission.BROADCAST_BADGE"
        >
    </uses-permission>
    <uses-permission
        android:name="com.anddoes.launcher.permission.UPDATE_COUNT"
        >
    </uses-permission>
    <uses-permission
        android:name="com.majeur.launcher.permission.UPDATE_BADGE"
        >
    </uses-permission>
    <uses-permission
        android:name="com.huawei.android.launcher.permission.CHANGE_BADGE"
        >
    </uses-permission>
    <uses-permission
        android:name="com.huawei.authentication.HW_ACCESS_AUTH_SERVICE"
        >
    </uses-permission>
    <uses-permission
        android:name="com.huawei.android.launcher.permission.READ_SETTINGS"
        >
    </uses-permission>
    <uses-permission
        android:name="com.huawei.android.launcher.permission.WRITE_SETTINGS"
        >
    </uses-permission>
    <supports-screens
        android:anyDensity="true"
        android:smallScreens="true"
        android:normalScreens="true"
        android:largeScreens="true"
        >
    </supports-screens>
    <application
        android:theme="@7F08003C"
        android:label="@7F060000"
        android:icon="@7F020B08"
        android:name="com.autonavi.minimap.MapApplication"
        android:allowBackup="false"
        android:vmSafeMode="true"
        android:hardwareAccelerated="true"
        >
        <meta-data
            android:name="com.amap.api.v2.apikey"
            android:value="1a98a360b75f848b606520319ebeb2ad"
            >
        </meta-data>
        <meta-data
            android:name="APP_ID"
            android:value="fd6d7b6f19cbe680"
            >
        </meta-data>
        <meta-data
            android:name="dependence"
            android:value="com.autonavi.mine,com.autonavi.user,com.autonavi.push"
            >
        </meta-data>
        <activity
            android:theme="@7F080072"
            android:name="com.autonavi.plugin.app.HostActivity"
            android:exported="false"
            android:configChanges="0x000004A0"
            >
            <intent-filter
                >
                <action
                    android:name="action.plugin.Activity"
                    >
                </action>
                <category
                    android:name="android.intent.category.DEFAULT"
                    >
                </category>
            </intent-filter>
        </activity>
        <activity
            android:theme="@7F08003D"
            android:label="@7F060000"
            android:name="com.autonavi.map.common.activity.DataFreeLowActivity"
            android:screenOrientation="1"
            android:configChanges="0x000000A0"
            >
        </activity>
        <activity
            android:theme="@7F08003D"
            android:label="@7F060000"
            android:name="com.autonavi.minimap.OnInstallErrorListenerImpl$InstallErrorActivity"
            android:process=":installerror"
            android:screenOrientation="1"
            android:configChanges="0x000000A0"
            >
        </activity>
        <activity
            android:theme="@7F08003D"
            android:label="@7F060000"
            android:name="com.autonavi.map.activity.SplashActivity" 
            android:screenOrientation="1"
            android:configChanges="0x000000A0"
            android:noHistory="false"
            >
            <intent-filter
                >
                <action
                    android:name="android.intent.action.MAIN" 
                    >
                </action>
                <category
                    android:name="android.intent.category.LAUNCHER" //这个是LAUNCHER页面,可以看到这个页面下有许多供第三方应用调用的Data项
                    >
                </category>
            </intent-filter>
            <intent-filter
                >
                <action
                    android:name="android.intent.action.VIEW"
                    >
                </action>
                <category
                    android:name="android.intent.category.DEFAULT"
                    >
                </category>
                <category
                    android:name="android.intent.category.BROWSABLE"
                    >
                </category>
                <data
                    android:scheme="androidamap"
                    android:host="navi"
                    >
                </data>
            </intent-filter>
            <intent-filter
                >
                <action
                    android:name="android.intent.action.VIEW"
                    >
                </action>
                <category
                    android:name="android.intent.category.DEFAULT"
                    >
                </category>
                <category
                    android:name="android.intent.category.BROWSABLE"
                    >
                </category>
                <data
                    android:scheme="androidamap"//这个就是我们要用到的URI了
                    android:host="openFeature"
                    >
                </data>
            </intent-filter>
            <intent-filter
                >
                <action
                    android:name="android.intent.action.VIEW"
                    >
                </action>
                <category
                    android:name="android.intent.category.DEFAULT"
                    >
                </category>
                <category
                    android:name="android.intent.category.BROWSABLE"
                    >
                </category>
                <data
                    android:scheme="androidamap"
                    android:host="poi"
                    >
                </data>
            </intent-filter>
            <intent-filter
                >
                <action
                    android:name="com.autonavi.minimap.ACTION"
                    >
                </action>
                <action
                    android:name="android.intent.action.VIEW"
                    >
                </action>
                <data
                    android:scheme="geo"
                    >
                </data>
                <data
                    android:scheme="pois"
                    >
                </data>
                <data
                    android:scheme="wechatnav"
                    >
                </data>
                <category
                    android:name="android.intent.category.DEFAULT"
                    >
                </category>
            </intent-filter>
            <intent-filter
                >
                <action
                    android:name="com.autonavi.minimap.ACTION"
                    >
                </action>
                <action
                    android:name="android.intent.action.VIEW"
                    >
                </action>
                <category
                    android:name="android.intent.category.DEFAULT"
                    >
                </category>
                <category
                    android:name="android.intent.category.BROWSABLE"
                    >
                </category>
                <data
                    android:scheme="http"
                    android:host="maps.google.com"
                    >
                </data>
                <data
                    android:scheme="http"
                    android:host="maps.google.cn"
                    >
                </data>
                <data
                    android:scheme="http"
                    android:host="ditu.google.cn"
                    >
                </data>
                <data
                    android:scheme="http"
                    android:host="10.2.134.117"
                    >
                </data>
                <data
                    android:scheme="http"
                    android:host="ditu.google.com"
                    >
                </data>
            </intent-filter>
            <intent-filter
                >
                <action
                    android:name="android.intent.action.VIEW"
                    >
                </action>
                <category
                    android:name="android.intent.category.DEFAULT"
                    >
                </category>
                <category
                    android:name="android.intent.category.BROWSABLE"
                    >
                </category>
                <data
                    android:scheme="http"
                    android:host="wb.amap.com"
                    >
                </data>
                <data
                    android:scheme="http"
                    android:host="amap.com"
                    >
                </data>
                <data
                    android:scheme="http"
                    android:host="mo.amap.com"
                    >
                </data>
                <data
                    android:scheme="http"
                    android:host="dypx.amap.com"
                    >
                </data>
                <data
                    android:scheme="http"
                    android:host="surl.test.myamap.com"
                    >
                </data>
                <data
                    android:scheme="http"
                    android:host="f.amap.com"
                    >
                </data>
            </intent-filter>
            <intent-filter
                >
                <action
                    android:name="android.intent.action.VIEW"
                    >
                </action>
                <category
                    android:name="android.intent.category.DEFAULT"
                    >
                </category>
                <data
                    android:mimeType="vnd.android.cursor.item/postal-address"
                    >
                </data>
            </intent-filter>
            <intent-filter
                >
                <action
                    android:name="android.intent.action.VIEW"
                    >
                </action>
                <category
                    android:name="android.intent.category.DEFAULT"
                    >
                </category>
                <data
                    android:mimeType="vnd.android.cursor.item/postal-address_v2"
                    >
                </data>
            </intent-filter>
            <intent-filter
                >
                <action
                    android:name="android.intent.action.VIEW"
                    >
                </action>
                <category
                    android:name="android.intent.category.DEFAULT"
                    >
                </category>
                <category
                    android:name="android.intent.category.BROWSABLE"
                    >
                </category>
                <data
                    android:scheme="androidamap"
                    android:host="showTraffic"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="viewMap"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="indoorMap"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="myLocation"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="bus"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="arroundpoi"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="route"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="keywordNavi"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="viewReGeo"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="viewGeo"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="viewPOIDetail"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="shorturl"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="discovery"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="hotelList"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="groupbuyList"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="movieList"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="movieDetail"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="groupbuyDetail"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="navi2SpecialDest"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="rootmap"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="openTrafficRemind"
                    >
                </data>
                <data
                    android:scheme="androidamap"
                    android:host="multiPointShow"
                    >
                </data>
            </intent-filter>
        </activity>
        <activity
            android:theme="@7F08003B"
            android:name="com.autonavi.map.activity.NewMapActivity"
            android:launchMode="2"
            android:configChanges="0x40000DB4"
            android:alwaysRetainTaskState="true"
            android:windowSoftInputMode="0x00000020"
            >
            <intent-filter
                >
                <action
                    android:name="com.autonavi.minimap.ACTION" 
                    >
                </action>
                <data
                    android:scheme="navi"
                    >
                </data>
                <category
                    android:name="android.intent.category.DEFAULT"
                    >
                </category>
            </intent-filter>
            <intent-filter
                >
                <action
                    android:name="INTENT_ACTION_TAXISHORT"
                    >
                </action>
                <category
                    android:name="android.intent.category.DEFAULT"
                    >
                </category>
            </intent-filter>
        </activity>
        <activity
            android:name="com.autonavi.gdtaojin.camera.CameraActivity"
            android:screenOrientation="1"
            android:configChanges="0x400004B0"
            >
        </activity>
        <activity
            android:name="com.autonavi.map.search.fragment.ChannelDetailFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.search.ChannelDetailFragment"
                >
            </meta-data>
        </activity>
        <activity
            android:theme="@7F080041"
            android:label=" "
            android:name="com.autonavi.minimap.wxapi.WXEntryActivity"
            android:exported="true"
            android:screenOrientation="2"
            android:configChanges="0x000000A0"
            >
        </activity>
        <activity
            android:theme="@android:01030006"
            android:name="com.autonavi.minimap.sys.setting.ProcessPhotoActivity"
            android:screenOrientation="2"
            android:configChanges="0x000000C0"
            android:windowSoftInputMode="0x00000020"
            >
        </activity>
        <activity
            android:theme="@7F08003A"
            android:name="com.autonavi.minimap.UserGuideActivity"
            android:launchMode="2"
            android:screenOrientation="1"
            >
        </activity>
        <activity
            android:name="com.autonavi.minimap.basemap.errorback.DoorAddressUpload"
            android:screenOrientation="2"
            android:windowSoftInputMode="0x00000010"
            >
        </activity>
        <activity
            android:theme="@7F08003F"
            android:name="com.autonavi.map.shortcut.view.ShortcutActivity"
            android:taskAffinity="com.autonavi.minimap.shortcut"
            android:screenOrientation="1"
            >
            <intent-filter
                >
                <action
                    android:name="android.intent.action.MAIN"
                    >
                </action>
            </intent-filter>
        </activity>
        <activity
            android:theme="@android:01030010"
            android:name="com.tencent.connect.common.AssistActivity"
            android:configChanges="0x000004A0"
            >
        </activity>
        <activity
            android:name="com.tencent.tauth.AuthActivity"
            android:launchMode="2"
            android:configChanges="0x000004A0"
            android:noHistory="true"
            >
            <intent-filter
                >
                <action
                    android:name="android.intent.action.VIEW"
                    >
                </action>
                <category
                    android:name="android.intent.category.DEFAULT"
                    >
                </category>
                <category
                    android:name="android.intent.category.BROWSABLE"
                    >
                </category>
                <data
                    android:scheme="tencent100571486"
                    >
                </data>
            </intent-filter>
        </activity>
        <activity
            android:name="com.alipay.sdk.app.H5PayActivity"
            android:exported="false"
            android:screenOrientation="3"
            android:configChanges="0x000000E0"
            >
        </activity>
        <activity
            android:name="com.alipay.sdk.auth.AuthActivity"
            android:exported="false"
            android:screenOrientation="3"
            android:configChanges="0x000000E0"
            >
        </activity>
        <receiver
            android:name="com.autonavi.map.intent.AmapActionBroadcastReceiver"
            >
            <intent-filter
                >
                <action
                    android:name="com.autonavi.minimap.Intent.Action"
                    >
                </action>
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.amap.api.service.BootEventReceiver"
            >
            <intent-filter
                >
                <action
                    android:name="android.intent.action.BOOT_COMPLETED"
                    >
                </action>
                <category
                    android:name="android.intent.category.LAUNCHER"
                    >
                </category>
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.ut.device.BQueryWhoHasOne"
            android:permission="com.ut.permission.DEVICE_STATE"
            android:exported="true"
            >
            <intent-filter
                >
                <action
                    android:name="UT.QueryWhoHasOne"
                    >
                </action>
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.ut.device.BFoundIt"
            android:permission="com.ut.permission.DEVICE_STATE"
            android:exported="true"
            >
            <intent-filter
                >
                <action
                    android:name="UT.FoundIT"
                    >
                </action>
            </intent-filter>
        </receiver>
        <service
            android:name="com.amap.api.service.AMapService"
            android:enabled="true"
            android:exported="true"
            android:process=":locationservice"
            >
        </service>
        <service
            android:name="com.autonavi.common.impl.BackgroundService"
            >
        </service>
        <service
            android:name="com.alipay.android.app.MspService"
            >
        </service>
        <service
            android:name="com.autonavi.minimap.route.bus.navi.BusRideRemindService"
            >
        </service>
        <service
            android:name="com.autonavi.minimap.route.foot.footnavi.FootNaviService"
            android:priority="1000"
            >
        </service>
        <service
            android:name="com.autonavi.minimap.route.car.navi.CarNaviService"
            >
        </service>
        <activity
            android:name="com.autonavi.minimap.basemap.msgbox.MessageBoxMainPage"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.MsgBox"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.route.car.traffic.TrafficRemindFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.TrafficRemind"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.basemap.traffic.TrafficBoardFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.TrafficBoard"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.myProfile.CarIllegalDlg"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.CarIllegal"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.myProfile.MyUsefulAddressFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.UsefulAddress"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.map.fragment.ExtendWebViewFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.ExtendWeb"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.map.fragment.NormalWebFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.NormalWeb"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.life.order.base.fragment.MyOrderFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.MyOrder"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.life.weekend.view.WeekendHappyMainFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.WeekendHappy"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.life.travelchannel.view.TravelChannelGuideFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.TravelGuide"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.route.car.traffic.TrafficEDogFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.TrafficEDog"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.life.movie.fragment.MovieDetailFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.MovieDetailFragment"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.map.setting.AddNaviShortcutFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.NaviShortcut"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.life.coupon.fragment.CouponListDlg"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.Coupon"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.basemap.activities.ActivitiesFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.activities"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.basemap.drivepage.fragment.DrivePageMainFragment"
            android:screenOrientation="1"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.drive"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.basemap.drivepage.fragment.DrivePageDetailFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.drive.detail"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.map.search.fragment.SearchFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.search.searchinput"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.map.search.fragment.SinglePoiOnMap"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.search.singlepoionmap"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.map.search.fragment.SearchFromArroundFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.search.searchfromarround"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.map.search.fragment.ThirdPartWebFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.search.thirdpartyweb"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.basemap.save.fragment.SaveFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.save.main"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.basemap.save.fragment.SaveSearchFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.save.search"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.basemap.save.fragment.SaveDuplicateConfirmFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.save.duplicateconfirm"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.basemap.selectpoi.fragment.SelectPoiFromMapFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.search.selectpoifrommap"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.route.taxi.fragment.TaxiMapFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.taxi.taximap"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.map.fragment.common.LicenseConfirmFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.common.licenseconfirm"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.route.car.quicknaviwidget.QuickAutoNaviFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.quicknavi"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.route.car.quicknaviwidget.QuickAutonNaviSettingFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.quicknavi.navisetting"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.route.subway.SubwayCityListFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.SubwayCityList"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.life.hotel.fragment.HotelReserveMoreFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.life.HotelReserveMoreFragment"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.route.common.fragment.RouteFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.RouteFragment"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.route.bus.busline.fragment.BusLineDetailFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.BusLineDetailFragment"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.map.fragment.DefaultFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.DefaultFragment"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.life.spotguide.fragment.TravelGuideMainMapFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.life.TravelGuideMainMapFragment"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.basemap.save.fragment.SavePointToMapFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.save.SavePointToMapFragment"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.route.common.fragment.RouteResultFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.RouteResultFragment"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.route.bus.busline.fragment.BusLineStationMapFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.BusLineStationMapFragment"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.route.bus.busline.fragment.BusLineResultFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.BusLineResultFragment"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.map.search.fragment.SearchCategoryFromTipFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.search.SearchCategoryFromTipFragment"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.map.search.fragment.PoiDetailFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.search.PoiDetailFragment"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.map.switchcity.SwitchCityNodeFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.SwitchCityNodeFragment"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.map.search.fragment.SearchCallbackFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.search.SearchCallbackFragment"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.basemap.selectpoi.fragment.SelectFixPoiFromMapFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.selectpoi.SelectFixPoiFromMapFragment"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.basemap.activities.ExamplePictureFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.ExamplePictureFragment"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.basemap.activities.LookOverPictureFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.LookOverPictureFragment"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.basemap.traffic.TrafficReportDialogFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.traffic.trafficreport"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.spring.SpringDialogFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.spring"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.basemap.traffic.TrafficSubmitDialogFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.traffic.trafficreportdesc"
                >
            </meta-data>
        </activity>
        <activity
            android:name="com.autonavi.minimap.life.audioguide.fragment.AudioGuideMapFragment"
            >
            <meta-data
                android:name="action"
                android:value="plugin.minimap.AudioGuide"
                >
            </meta-data>
        </activity>
        <receiver
            android:name="com.autonavi.minimap.appdownload.InstallListener"
            >
            <intent-filter
                >
                <action
                    android:name="android.intent.action.PACKAGE_ADDED"
                    >
                </action>
                <data
                    android:scheme="package"
                    >
                </data>
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.autonavi.minimap.route.car.alarm.AlarmReceiver"
            android:exported="false"
            >
            <intent-filter
                >
                <action
                    android:name="com.autonavi.deskclock.ALARM_ALERT"
                    >
                </action>
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.autonavi.minimap.route.car.alarm.AlarmInitReceiver"
            android:exported="false"
            >
            <intent-filter
                >
                <action
                    android:name="com.autonavi.deskclock.AMAP_COMPLETED"
                    >
                </action>
                <action
                    android:name="android.intent.action.BOOT_COMPLETED"
                    >
                </action>
                <action
                    android:name="android.intent.action.TIME_SET"
                    >
                </action>
                <action
                    android:name="android.intent.action.TIMEZONE_CHANGED"
                    >
                </action>
                <action
                    android:name="android.intent.action.LOCALE_CHANGED"
                    >
                </action>
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.autonavi.minimap.offline.common.receiver.SdCardReceiver"
            >
            <intent-filter
                >
                <action
                    android:name="android.intent.action.MEDIA_EJECT"
                    >
                </action>
                <action
                    android:name="android.intent.action.MEDIA_UNMOUNTED"
                    >
                </action>
                <action
                    android:name="android.intent.action.MEDIA_MOUNTED"
                    >
                </action>
                <action
                    android:name="android.intent.action.MEDIA_REMOVED"
                    >
                </action>
                <action
                    android:name="android.intent.action.MEDIA_SHARED"
                    >
                </action>
                <data
                    android:scheme="file"
                    >
                </data>
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.autonavi.minimap.WakeupReceiver"
            >
            <intent-filter
                >
                <action
                    android:name="android.intent.action.PHONE_STATE"
                    >
                </action>
                <action
                    android:name="android.intent.action.NEW_OUTGOING_CALL"
                    >
                </action>
                <action
                    android:name="android.net.conn.CONNECTIVITY_CHANGE"
                    >
                </action>
            </intent-filter>
        </receiver>
        <provider
            android:name="com.autonavi.minimap.route.car.alarm.AlarmProvider"
            android:exported="false"
            android:authorities="com.autonavi.deskclock"
            >
        </provider>
        <service
            android:name="com.autonavi.minimap.drive.car.navi.naviwidget.AutoNaviFloatViewWidgetService"
            >
        </service>
        <activity
            android:name="com.taobao.tae.sdk.webview.BaseWebViewActivity"
            >
        </activity>
        <activity
            android:name="com.taobao.tae.sdk.ui.LoginWebViewActivity"
            >
        </activity>
        <activity
            android:name="com.taobao.tae.sdk.ui.TradeWebViewActivity"
            >
            <intent-filter
                >
                <action
                    android:name="COM_TAOBAO_TAE_SDK_TRADE_WEB_VIEW_ACTION"
                    >
                </action>
                <category
                    android:name="android.intent.category.DEFAULT"
                    >
                </category>
            </intent-filter>
        </activity>
        <receiver
            android:name="com.taobao.agoo.SystemReceiver"
            android:process=":push"
            >
            <intent-filter
                >
                <action
                    android:name="android.intent.action.BOOT_COMPLETED"
                    >
                </action>
            </intent-filter>
            <intent-filter
                >
                <action
                    android:name="android.net.conn.CONNECTIVITY_CHANGE"
                    >
                </action>
            </intent-filter>
            <intent-filter
                >
                <action
                    android:name="android.intent.action.PACKAGE_REMOVED"
                    >
                </action>
                <data
                    android:scheme="package"
                    >
                </data>
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.taobao.agoo.MessageReceiver"
            android:process=":push"
            >
            <intent-filter
                >
                <action
                    android:name="org.agoo.android.intent.action.RECEIVE"
                    >
                </action>
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.taobao.agoo.ElectionReceiver"
            android:process=":push"
            >
            <intent-filter
                >
                <action
                    android:name="org.agoo.android.intent.action.ELECTION_RESULT_V4"
                    >
                </action>
                <category
                    android:name="taobao"
                    >
                </category>
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.taobao.agoo.RegistrationReceiver"
            android:exported="false"
            >
            <intent-filter
                >
                <action
                    android:name="com.autonavi.minimap.intent.action.COMMAND"
                    >
                </action>
            </intent-filter>
        </receiver>
        <service
            android:name="com.taobao.agoo.PushService"
            android:exported="true"
            android:process=":push"
            >
            <intent-filter
                >
                <action
                    android:name="com.autonavi.minimap.intent.action.START"
                    >
                </action>
            </intent-filter>
            <intent-filter
                >
                <action
                    android:name="com.autonavi.minimap.intent.action.COCKROACH"
                    >
                </action>
            </intent-filter>
            <intent-filter
                >
                <action
                    android:name="org.agoo.android.intent.action.PING_V4"
                    >
                </action>
                <category
                    android:name="taobao"
                    >
                </category>
            </intent-filter>
        </service>
        <service
            android:name="com.autonavi.minimap.TaobaoIntentService"
            android:process=":push"
            >
        </service>
        <service
            android:name="com.taobao.agoo.TaobaoMessageIntentReceiverService"
            android:exported="true"
            android:process=":push"
            >
            <intent-filter
                >
                <action
                    android:name="org.android.agoo.client.MessageReceiverService"
                    >
                </action>
            </intent-filter>
            <intent-filter
                >
                <action
                    android:name="org.android.agoo.client.ElectionReceiverService"
                    >
                </action>
            </intent-filter>
        </service>
        <service
            android:name="com.autonavi.minimap.LeakUploadService"
            >
        </service>
        <service
            android:name="com.shenma.speechrecognition.ShenmaRecognitionService"
            >
        </service>
        <activity
            android:name="com.sina.weibo.sdk.component.WeiboSdkBrowser"
            android:exported="false"
            android:configChanges="0x000000A0"
            android:windowSoftInputMode="0x00000010"
            >
        </activity>
        <activity
            android:name="com.sina.weibo.sdk.demo.WBShareActivity"
            android:screenOrientation="1"
            android:configChanges="0x000000A0"
            >
            <intent-filter
                >
                <action
                    android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY"
                    >
                </action>
                <category
                    android:name="android.intent.category.DEFAULT"
                    >
                </category>
            </intent-filter>
        </activity>
        <service
            android:name="com.shenma.speechrecognition.ShenmaRecognitionService"
            >
        </service>
    </application>
</manifest>



在这个清单文件中我们找到的高德地图对外的uri,使用该URI可以打开各种高德地图的页面,至于页面参数可以看反编译出来的代码,全局搜索featureName这个关键字可以看到高德地图有这么一个类MainIntentDispatcher.java:

package com.autonavi.map.intent.dispatch;

import adh;
import android.app.Activity;
import android.app.Application;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Point;
import android.net.Uri;
import android.os.Build.VERSION;
import android.support.v4.app.Fragment;
import android.text.TextUtils;
import com.autonavi.common.Account;
import com.autonavi.common.Account.Provider;
import com.autonavi.common.CC;
import com.autonavi.common.CC.Ext;
import com.autonavi.common.Callback;
import com.autonavi.common.impl.DebugLog;
import com.autonavi.common.model.GeoPoint;
import com.autonavi.common.model.POI;
import com.autonavi.common.model.POIFactory;
import com.autonavi.common.utils.FileUtil;
import com.autonavi.common.utils.ToastHelper;
import com.autonavi.map.fragment.DefaultFragment;
import com.autonavi.map.fragment.ExtendWebViewFragment;
import com.autonavi.map.fragmentcontainer.FragmentContainer;
import com.autonavi.map.fragmentcontainer.NodeAlertDialogFragment;
import com.autonavi.map.fragmentcontainer.NodeAlertDialogFragment.Builder;
import com.autonavi.map.fragmentcontainer.NodeAlertDialogFragment.NodeDialogFragmentOnClickListener;
import com.autonavi.map.fragmentcontainer.NodeFragment;
import com.autonavi.map.fragmentcontainer.NodeFragmentBundle;
import com.autonavi.map.intent.fragment.MultiPointMapFragment;
import com.autonavi.map.manger.MapInterfaceFactory;
import com.autonavi.map.quicknavi.QuickAutoNaviFragment;
import com.autonavi.map.search.SearchUtil;
import com.autonavi.map.setting.AddNaviShortcutFragment;
import com.autonavi.map.switchcity.SwitchCityNodeFragment;
import com.autonavi.minimap.MapApplication;
import com.autonavi.minimap.basemap.activities.ActivitiesFragment;
import com.autonavi.minimap.basemap.save.fragment.SaveFragment;
import com.autonavi.minimap.basemap.subway.SubwayController;
import com.autonavi.minimap.intent.BaseMapAction;
import com.autonavi.minimap.life.shortcut.fragment.TravelHelperFragment;
import com.autonavi.minimap.map.VirtualEarthProjection;
import com.autonavi.minimap.map.vmap.Projection;
import com.autonavi.minimap.traffic.TrafficJamManager;
import com.autonavi.minimap.traffic.TrafficJamManager.1;
import com.autonavi.minimap.traffic.TrafficRemindFragment;
import com.autonavi.plugin.PluginManager;
import com.autonavi.plugin.PluginMsg;
import com.autonavi.sdk.http.app.ConfigerHelper;
import com.autonavi.sdk.log.LogManager;
import ew;
import fe;
import iu;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
import pk;
import proguard.annotation.Keep;
import proguard.annotation.KeepClassMembers;
import rz;

@Keep
@KeepClassMembers
public class MainIntentDispatcher extends pk
{
  private final String HOST_CLEAR_ALL_DIALOG = "rootmap";
  private final String HOST_MULTI_POINTS = "multiPointShow";
  private final String HOST_MYLOCATION = "myLocation";
  private final String HOST_SHORTURL = "shorturl";
  private final String PAN_GOLD_URL = "http://wap.amap.com/gxd/index.html";
  private final String PARAMS_ACCOUNT = "Account";
  private final String PARAMS_CITY_SELECT = "CitySelect";
  private final String PARAMS_CLEANING = "Cleaning";
  private final String PARAMS_DIRECT_NAVI = "DirectNavigation";
  private final String PARAMS_EASYDRIVING = "EasyDriving";
  private final String PARAMS_EXTERNAL_URL = "ExternalURL";
  private final String PARAMS_FAVORITE = "Favorite";
  private final String PARAMS_OPEN_GOLD_COIN = "GoldCoin";
  private final String PARAMS_OPEN_ILLEGAL = "Illegal";
  private final String PARAMS_OPEN_QUICKNAVI = "ShortCut";
  private final String PARAMS_OPEN_TRAFFICRADIO = "TrafficRadio";
  private final String PARAMS_OPEN_TRAFFIC_OVERLAY = "OpenTraffic";
  private final String PARAMS_OPEN_VOICE_SEARCH = "VoiceSearch";
  private final String PARAMS_POI_DETAIL = "PoiDetail";
  private final String PARAMS_SPECIA_TOPIC = "SpecialTopic";
  private final String PARAMS_SUB_WAY = "Subway";
  private final String PARAMS_TRAFFICBOARD = "openTrafficTopBoard";
  private final String PARAMS_TRAFFICEDOG = "openTrafficEdog"; //打开电子狗
  private final String PARAMS_TRAFFICREMIND = "openTrafficRemind";
  private final String PARAMS_TRAFFIC_LAYERS = "Layers";
  private final String PARAMS_USER = "User";
  private final String PARAMS_WALLET = "Wallet";

  public MainIntentDispatcher(Activity paramActivity)
  {
    super(paramActivity);
  }

  private boolean doOpenFeature(Intent paramIntent)//这个是关键函数,获取参数打开各个页面的地方
  {
    Uri localUri = paramIntent.getData();
    String str = localUri.getQueryParameter("featureName");
    if (TextUtils.isEmpty(str))
      ToastHelper.showLongToast(CC.getApplication().getString(2131101427));
    do
    {
      return true;
      if (str.equalsIgnoreCase("DirectNavigation"))
      {
        doOpenFeatureDirectNavi();
        return true;
      }
      if (str.equalsIgnoreCase("CitySelect"))
      {
        doOpenFeatureCitySelect();
        return true;
      }
      if (str.equalsIgnoreCase("SpecialTopic"))
      {
        doOpenFeatureSpecialTopic();
        return true;
      }
      if ("Subway".equalsIgnoreCase(str))
      {
        openSubWay(localUri);
        return true;
      }
      if ("EasyDriving".equalsIgnoreCase(str))
      {
        doOpenFeatureEasyDriving(localUri);
        return true;
      }
      if ("Illegal".equalsIgnoreCase(str))
      {
        doOpenFeatureIllegal(localUri);
        return true;
      }
      if (str.equalsIgnoreCase("Favorite"))
      {
        doOpenFeatureFavorite();
        return true;
      }
      if (str.equalsIgnoreCase("Layers"))
      {
        doOpenFeatureTrafficReport();
        return true;
      }
      if (str.equalsIgnoreCase("ExternalURL"))
      {
        doOpenFeatureExternalUrl(localUri);
        return true;
      }
      if (str.equalsIgnoreCase("Cleaning"))
      {
        doOpenFeatureCleaning();
        return true;
      }
      if (str.equalsIgnoreCase("ShortCut"))
      {
        doOpenFeatureQuickNavi();
        return true;
      }
      if (str.equalsIgnoreCase("GoldCoin"))
      {
        doOpenFeatureGoldGoin(localUri);
        return true;
      }
      if (str.equalsIgnoreCase("TrafficRadio"))
      {
        doShowTrafficRemind(localUri);
        return true;
      }
      if (str.equalsIgnoreCase("openTrafficRemind"))
      {
        doShowTrafficRemind(localUri);
        return true;
      }
      if (str.equalsIgnoreCase("openTrafficTopBoard"))
      {
        doOpenFeatureShowTrafficTopBoard(localUri);
        return true;
      }
      if (str.equalsIgnoreCase("openTrafficEdog"))
      {
        doOpenFeatureShowTrafficEDog(localUri);
        return true;
      }
      if (str.equalsIgnoreCase("PoiDetail"))
      {
        doOpenFeatureShowPoiDetail(localUri);
        return true;
      }
      if (str.equalsIgnoreCase("VoiceSearch"))
      {
        doOpenFeatureVoiceSearch();
        return true;
      }
      if (str.equalsIgnoreCase("OpenTraffic"))
      {
        doOpenFeatureTrafficOverlay();
        return true;
      }
      if (str.equalsIgnoreCase("Account"))
      {
        doOpenFeatureAccount();
        return true;
      }
      if (str.equalsIgnoreCase("User"))
      {
        doOpenFeatureUser(localUri);
        return true;
      }
      if (str.equalsIgnoreCase("Wallet"))
      {
        doOpenFeatureWallet();
        return true;
      }
      if (!str.equalsIgnoreCase("Mine"))
        break;
    }
    while (doOpenMine(localUri));
    return false;
    return false;
  }

  private boolean doOpenMine(Uri paramUri)
  {
    String str1 = paramUri.getQueryParameter("page");
    String str2;
    boolean bool2;
    if ((!TextUtils.isEmpty(str1)) && (str1.equals("ToolBox")))
    {
      str2 = paramUri.getQueryParameter("item");
      if (!TextUtils.isEmpty(str2))
      {
        if (str2.equals("ElectronicEye"))
          openElectronicEye();
      }
      else
        bool2 = true;
    }
    boolean bool1;
    do
    {
      boolean bool3;
      do
      {
        return bool2;
        if (str2.equals("Traffic"))
        {
          openTrafficAlert();
          break;
        }
        if (str2.equals("Violation"))
        {
          openCarIllegal();
          break;
        }
        if (str2.equals("Subway"))
        {
          openSubWay(null);
          break;
        }
        if (str2.equals("Maincollect"))
        {
          openRoadCaiji();
          break;
        }
        if (str2.equals("AutonaviGold"))
        {
          openPanGold();
          break;
        }
        bool3 = str2.equals("TravelHelper");
        bool2 = false;
      }
      while (!bool3);
      openTravelHelper();
      break;
      if ((TextUtils.isEmpty(str1)) || (!str1.equals("Fortune")))
        break label229;
      bool1 = TextUtils.isEmpty(paramUri.getQueryParameter("item"));
      bool2 = false;
    }
    while (!bool1);
    ToastHelper.showLongToast(CC.getApplication().getString(2131101426));
    return true;
    label229: Intent localIntent = new Intent();
    localIntent.setPackage("com.autonavi.mine");
    localIntent.setAction("plugin.mine.Main");
    getTopFragment().startFragment(localIntent);
    return true;
  }

  private void openTravelHelper()
  {
    CC.startFragment(TravelHelperFragment.class);
  }

  public boolean dispatch(Intent paramIntent)
  {
    Uri localUri = paramIntent.getData();
    if (localUri == null);
    do
    {
      return true;
      String str = localUri.getHost();
      if ((localUri == null) || (TextUtils.isEmpty(str)))
        break label111;
      if (str.equals("myLocation"))
      {
        myLocation();
        return true;
      }
      if (str.endsWith("shorturl"))
      {
        doShortUrlScheme(localUri);
        return true;
      }
      if (str.equalsIgnoreCase("rootmap"))
      {
        removeAllFragmentsWithoutRoot();
        return true;
      }
      if (str.equalsIgnoreCase("multiPointShow"))
      {
        showMultiPoints(localUri);
        return true;
      }
      if (!str.equalsIgnoreCase("openFeature"))
        break;
    }
    while (doOpenFeature(paramIntent));
    return false;
    return false;
    label111: return false;
  }

  public void doOpenFeatureAccount()
  {
    if ("".equals(CC.getAccount().getUid()))
    {
      CC.getAccount().login(null);
      return;
    }
    Intent localIntent = new Intent("plugin.user.Profile");
    localIntent.setPackage("com.autonavi.user");
    getTopFragment().startFragment(localIntent);
  }

  public void doOpenFeatureCitySelect()
  {
    NodeFragmentBundle localNodeFragmentBundle = new NodeFragmentBundle();
    localNodeFragmentBundle.putInt("SWITCH_CITY_FOR", 1);
    startFragment(SwitchCityNodeFragment.class, localNodeFragmentBundle);
  }

  public void doOpenFeatureCleaning()
  {
    SearchUtil.showEjiajieDlg(getTopFragment());
  }

  public void doOpenFeatureDirectNavi()
  {
    startFragment(QuickAutoNaviFragment.class);
  }

  public void doOpenFeatureEasyDriving(Uri paramUri)
  {
    NodeFragment localNodeFragment = getFragmentContainer().getLastFragment();
    if ((localNodeFragment != null) && ((localNodeFragment instanceof NodeFragment)))
      SearchUtil.showEasyDriving();
  }

  public void doOpenFeatureExternalUrl(Uri paramUri)
  {
    String str = paramUri.getQueryParameter("url");
    if (!TextUtils.isEmpty(str));
    try
    {
      Uri localUri = Uri.parse(URLDecoder.decode(str, "UTF-8"));
      this.mActivity.startActivity(new Intent("android.intent.action.VIEW", localUri));
      return;
    }
    catch (Exception localException)
    {
    }
  }

  public void doOpenFeatureFavorite()
  {
    startFragment(SaveFragment.class);
  }

  public void doOpenFeatureGoldGoin(Uri paramUri)
  {
    if ("history".equals(paramUri.getQueryParameter("page")))
    {
      NodeFragmentBundle localNodeFragmentBundle1 = new NodeFragmentBundle();
      localNodeFragmentBundle1.putString("url", ConfigerHelper.getInstance().getGoldcoinUrl() + "record.html");
      localNodeFragmentBundle1.putString("thirdpart_name", "");
      localNodeFragmentBundle1.putBoolean("show_bottom_bar", false);
      localNodeFragmentBundle1.putBoolean("show_loading_anim", false);
      startFragment(ExtendWebViewFragment.class, localNodeFragmentBundle1);
      return;
    }
    NodeFragmentBundle localNodeFragmentBundle2 = new NodeFragmentBundle();
    localNodeFragmentBundle2.putString("title", CC.getApplication().getString(2131101845));
    localNodeFragmentBundle2.putString("url", ConfigerHelper.getInstance().getGoldcoinUrl() + "index.html");
    localNodeFragmentBundle2.putString("thirdpart_name", "");
    localNodeFragmentBundle2.putBoolean("show_bottom_bar", false);
    localNodeFragmentBundle2.putBoolean("show_loading_anim", false);
    startFragment(ExtendWebViewFragment.class, localNodeFragmentBundle2);
  }

  public void doOpenFeatureIllegal(Uri paramUri)
  {
    if (Build.VERSION.SDK_INT < 11)
      ToastHelper.showLongToast(CC.getApplication().getString(2131101421));
    final NodeFragment localNodeFragment;
    do
    {
      return;
      localNodeFragment = getFragmentContainer().getLastFragment();
    }
    while ((localNodeFragment == null) || (!(localNodeFragment instanceof NodeFragment)));
    if (CC.Ext.getAccountProvider().getAccount().isLogin())
    {
      ew.a((NodeFragment)localNodeFragment);
      return;
    }
    CC.Ext.getAccountProvider().getAccount().login(new Callback()
    {
      public void callback(Boolean paramAnonymousBoolean)
      {
        if (paramAnonymousBoolean.booleanValue())
          ew.a((NodeFragment)localNodeFragment);
      }

      public void error(Throwable paramAnonymousThrowable, boolean paramAnonymousBoolean)
      {
      }
    });
  }

  public void doOpenFeatureQuickNavi()
  {
    startFragment(AddNaviShortcutFragment.class);
  }

  public void doOpenFeatureShowPoiDetail(final Uri paramUri)
  {
    this.mActivity.runOnUiThread(new Runnable()
    {
      public final void run()
      {
        try
        {
          POI localPOI = POIFactory.createPOI();
          String str1 = paramUri.getQueryParameter("x");
          String str2 = paramUri.getQueryParameter("y");
          String str3 = URLDecoder.decode(paramUri.getQueryParameter("poiname"), "UTF-8");
          if (!TextUtils.isEmpty(str1))
          {
            boolean bool = TextUtils.isEmpty(str2);
            if (bool);
          }
          try
          {
            double d = Double.valueOf(str1).doubleValue();
            Point localPoint = VirtualEarthProjection.LatLongToPixels(Double.valueOf(str2).doubleValue(), d, 20);
            localPOI.setPoint(new GeoPoint(localPoint.x, localPoint.y));
            localPOI.setName(str3);
            localPOI.setId(paramUri.getQueryParameter("poiid"));
            rz.a(localPOI, 1);
            return;
          }
          catch (NumberFormatException localNumberFormatException)
          {
            localNumberFormatException.printStackTrace();
            return;
          }
        }
        catch (Exception localException)
        {
          localException.printStackTrace();
        }
      }
    });
  }

  public void doOpenFeatureShowTrafficEDog(Uri paramUri)
  {
    if (!CC.isInternetConnected())
      ToastHelper.showLongToast(MapApplication.getApplication().getString(2131102089));
    do
    {
      return;
      TrafficJamManager.a();
      TrafficJamManager.b();
    }
    while (!"trip".equalsIgnoreCase(paramUri.getQueryParameter("sourceApplication")));
    LogManager.actionLog(12406, 2);
  }

  public void doOpenFeatureShowTrafficTopBoard(Uri paramUri)
  {
    if (!CC.isInternetConnected())
    {
      ToastHelper.showLongToast(MapApplication.getApplication().getString(2131102089));
      return;
    }
    TrafficJamManager localTrafficJamManager = TrafficJamManager.a();
    MapApplication.getApplication();
    PluginMsg localPluginMsg = new PluginMsg(PluginManager.getApplication().getPackageName(), "getPageInfo");
    localPluginMsg.put("action", "plugin.minimap.TrafficBoard");
    PluginManager.sendMsg(localPluginMsg, new TrafficJamManager.1(localTrafficJamManager));
  }

  public void doOpenFeatureSpecialTopic()
  {
    startFragment(ActivitiesFragment.class);
  }

  public void doOpenFeatureTrafficOverlay()
  {
    BaseMapAction localBaseMapAction = BaseMapAction.OPEN_TRAFFIC_HELP;
    NodeFragmentBundle localNodeFragmentBundle = new NodeFragmentBundle();
    localNodeFragmentBundle.putString("key_action", "action_base_map_scheme");
    localNodeFragmentBundle.putObject("key_scheme_feature", localBaseMapAction);
    startFragment(DefaultFragment.class, localNodeFragmentBundle);
  }

  public void doOpenFeatureTrafficReport()
  {
    MapInterfaceFactory.getInstance().getReportController(CC.getTopActivity(), null).a();
  }

  public void doOpenFeatureUser(Uri paramUri)
  {
    if (!TextUtils.isEmpty(CC.getAccount().getUid()))
    {
      Intent localIntent = new Intent("plugin.user.Profile");
      localIntent.setPackage("com.autonavi.user");
      getTopFragment().startFragment(localIntent);
      return;
    }
    CC.getAccount().login(null);
  }

  public void doOpenFeatureVoiceSearch()
  {
    NodeFragment localNodeFragment = CC.getLastFragment();
    if (localNodeFragment != null)
      iu.a(localNodeFragment).c();
  }

  public void doOpenFeatureWallet()
  {
    PluginManager.sendMsg(new PluginMsg("com.autonavi.user", "openWallet"), null);
  }

  public void doShortUrlScheme(Uri paramUri)
  {
    Intent localIntent = new Intent("android.intent.action.VIEW");
    localIntent.setData(Uri.parse("http://wb.amap.com/?" + paramUri.getQuery()));
    NodeFragmentBundle localNodeFragmentBundle = new NodeFragmentBundle();
    localNodeFragmentBundle.putString("key_action", "action_base_map_scheme");
    localNodeFragmentBundle.putObject("key_scheme_feature", BaseMapAction.SHORT_URL);
    localNodeFragmentBundle.putObject("key_schema_short_url_intent", localIntent);
    startFragment(DefaultFragment.class, localNodeFragmentBundle);
  }

  public void doShowTrafficRemind(Uri paramUri)
  {
    if (!CC.isInternetConnected())
    {
      ToastHelper.showLongToast(MapApplication.getApplication().getString(2131102089));
      return;
    }
    if ("notify".equalsIgnoreCase(paramUri.getQueryParameter("sourceApplication")))
    {
      removeAllFragmentsWithoutRoot();
      LogManager.actionLog(12405, 1);
    }
    CC.startFragment(TrafficRemindFragment.class);
  }

  public void myLocation()
  {
    NodeFragmentBundle localNodeFragmentBundle = new NodeFragmentBundle();
    localNodeFragmentBundle.putString("key_action", "action_base_map_scheme");
    localNodeFragmentBundle.putObject("key_scheme_feature", BaseMapAction.MY_LOCATION);
    startFragment(DefaultFragment.class, localNodeFragmentBundle);
  }

  public void openCarIllegal()
  {
    final NodeFragment localNodeFragment = getFragmentContainer().getLastFragment();
    if ((localNodeFragment != null) && ((localNodeFragment instanceof NodeFragment)))
    {
      if (CC.Ext.getAccountProvider().getAccount().isLogin())
      {
        ew.a((NodeFragment)localNodeFragment);
        LogManager.actionLog(14100, 14);
      }
    }
    else
      return;
    CC.Ext.getAccountProvider().getAccount().login(new Callback()
    {
      public void callback(Boolean paramAnonymousBoolean)
      {
        if (paramAnonymousBoolean.booleanValue())
        {
          ew.a((NodeFragment)localNodeFragment);
          LogManager.actionLog(14100, 14);
        }
      }

      public void error(Throwable paramAnonymousThrowable, boolean paramAnonymousBoolean)
      {
      }
    });
  }

  public void openElectronicEye()
  {
    Intent localIntent = new Intent("plugin.minimap.TrafficEDog");
    localIntent.setPackage(CC.getApplication().getPackageName());
    CC.startFragment(localIntent);
  }

  public void openPanGold()
  {
    if (FileUtil.isAppInstalled("com.autonavi.gxdtaojin"))
    {
      FileUtil.launchApp(this.mActivity, "com.autonavi.gxdtaojin");
      return;
    }
    try
    {
      Intent localIntent = new Intent("android.intent.action.VIEW");
      localIntent.setData(Uri.parse("http://wap.amap.com/gxd/index.html"));
      this.mActivity.startActivity(localIntent);
      return;
    }
    catch (ActivityNotFoundException localActivityNotFoundException)
    {
      localActivityNotFoundException.printStackTrace();
    }
  }

  public void openRoadCaiji()
  {
    if (FileUtil.isAppInstalled("com.sh.caiji"))
    {
      FileUtil.launchApp(this.mActivity, "com.sh.caiji");
      return;
    }
    try
    {
      Intent localIntent = new Intent("android.intent.action.VIEW");
      localIntent.setData(Uri.parse("http://caiji.mapabc.com/"));
      this.mActivity.startActivity(localIntent);
      return;
    }
    catch (ActivityNotFoundException localActivityNotFoundException)
    {
      localActivityNotFoundException.printStackTrace();
    }
  }

  public void openSubWay(Uri paramUri)
  {
    if (paramUri == null)
    {
      SubwayController.getInstance().openSubway(this.mActivity, null);
      return;
    }
    String str = paramUri.getQueryParameter("adcode");
    SubwayController.getInstance().openSubway(this.mActivity, str);
  }

  public void openTrafficAlert()
  {
    Intent localIntent = new Intent("plugin.minimap.TrafficRemind");
    localIntent.setPackage(CC.getApplication().getPackageName());
    CC.startFragment(localIntent);
  }

  public void processShortUrl(Intent paramIntent)
  {
    NodeFragmentBundle localNodeFragmentBundle = new NodeFragmentBundle();
    localNodeFragmentBundle.putString("key_action", "action_base_map_scheme");
    localNodeFragmentBundle.putObject("key_scheme_feature", BaseMapAction.SHORT_URL);
    localNodeFragmentBundle.putObject("key_schema_short_url_intent", paramIntent);
    startFragment(DefaultFragment.class, localNodeFragmentBundle);
  }

  public void showAmapAppUpdate()
  {
    String str1 = adh.o();
    SharedPreferences localSharedPreferences = CC.getApplication().getSharedPreferences("SharedPreferences", 0);
    final String str2 = localSharedPreferences.getString("updateUrl", "");
    String str3 = localSharedPreferences.getString("updateAmapAppVersion", "");
    if ((TextUtils.isEmpty(str1)) || (TextUtils.isEmpty(str2)) || (TextUtils.isEmpty(str3)))
    {
      ToastHelper.showLongToast(CC.getApplication().getString(2131101424));
      return;
    }
    if (str1.compareTo(str3) >= 0)
    {
      ToastHelper.showLongToast(CC.getApplication().getString(2131101425));
      return;
    }
    NodeAlertDialogFragment.Builder localBuilder = new NodeAlertDialogFragment.Builder(this.mActivity);
    localBuilder.setMessage(2131101424);
    localBuilder.setTitle(2131104015);
    localBuilder.setPositiveButton(2131104017, new NodeAlertDialogFragment.NodeDialogFragmentOnClickListener()
    {
      public final void onClick(NodeAlertDialogFragment paramAnonymousNodeAlertDialogFragment)
      {
        Intent localIntent = new Intent("android.intent.action.VIEW", Uri.parse(str2));
        try
        {
          MainIntentDispatcher.this.mActivity.startActivity(localIntent);
          return;
        }
        catch (Exception localException)
        {
        }
      }
    });
    localBuilder.setNegativeButton(2131104014, new NodeAlertDialogFragment.NodeDialogFragmentOnClickListener()
    {
      public final void onClick(NodeAlertDialogFragment paramAnonymousNodeAlertDialogFragment)
      {
      }
    });
    try
    {
      CC.startAlertDialogFragment(localBuilder);
      return;
    }
    catch (Throwable localThrowable)
    {
      DebugLog.error(localThrowable);
    }
  }

  public void showMultiPoints(Uri paramUri)
  {
    String str1 = paramUri.getQueryParameter("title");
    String str2 = paramUri.getQueryParameter("q");
    String str3 = paramUri.getQueryParameter("dev");
    ArrayList localArrayList = new ArrayList();
    StringTokenizer localStringTokenizer;
    if (!TextUtils.isEmpty(str2))
      localStringTokenizer = new StringTokenizer(str2, "|");
    while (true)
    {
      String[] arrayOfString;
      if (localStringTokenizer.hasMoreTokens())
      {
        arrayOfString = localStringTokenizer.nextToken().split(",");
        if ((arrayOfString == null) || (arrayOfString.length < 3));
      }
      else
      {
        try
        {
          double d1 = Double.parseDouble(arrayOfString[0]);
          double d2 = Double.parseDouble(arrayOfString[1]);
          int i = Integer.parseInt(str3);
          GeoPoint localGeoPoint = new GeoPoint(d2, d1);
          if (i == 1)
            localGeoPoint = Projection.offsetCoordinat(localGeoPoint.x, localGeoPoint.y);
          POI localPOI = POIFactory.createPOI(arrayOfString[2], localGeoPoint);
          if (arrayOfString.length >= 4)
            localPOI.setAddr(arrayOfString[3]);
          if (arrayOfString.length >= 5)
            localPOI.setId(arrayOfString[4]);
          if (arrayOfString.length >= 6)
            localPOI.setPhone(arrayOfString[5]);
          localArrayList.add(localPOI);
          if (localArrayList.size() >= 10)
          {
            NodeFragmentBundle localNodeFragmentBundle = new NodeFragmentBundle();
            localNodeFragmentBundle.putString("key_title", str1);
            localNodeFragmentBundle.putObject("key_multi_points", localArrayList);
            startFragment(MultiPointMapFragment.class, localNodeFragmentBundle);
            return;
          }
        }
        catch (NumberFormatException localNumberFormatException)
        {
          ToastHelper.showToast(MapApplication.getApplication().getString(2131101911));
        }
      }
    }
  }
}

这里有各种各样的功能页面参数,这样我们就可以根据这些功能直接打开高德地图的这些页面了:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName cn = new ComponentName("com.autonavi.minimap", "com.autonavi.map.activity.NewMapActivity");
intent.setAction("com.autonavi.minimap.ACTION");
intent.setData(Uri.parse("androidamap://openFeature?featureName=openTrafficEdog"));//这个是直接打开电子狗页面

intent.setComponent(cn);
startActivity(intent);

好了,大功告成,可以直接打开电子狗页面了,其他页面也同理,只需要换参数就OK了。


在第三方应用中打开高德地图的特色功能页面

标签:

原文地址:http://blog.csdn.net/zx129311/article/details/51917653

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!