Android上手機軟體呼叫外部地圖軟體
有時候一個專案,需要用到地圖,但是又不想再軟體裡重寫一個地圖,於是就想法呼叫手機安裝好的地圖軟體。現在用的最多的地圖軟體,高德地圖和百度百度,不過還有搜狗地圖和騰訊地圖。其他的地圖就用的少了,現在就不考慮了。不多說上程式碼!!!
1、activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:orientation="vertical" > <Button android:id="@+id/btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="點選"/> </LinearLayout>
2、AndroidManifest.xml
新增下面程式碼在application中
<intent-filter android:priority="0" > <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="geo" /> </intent-filter>
3、MainActivity.java
StringBuffer mStringBuffer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mButton = (Button) this.findViewById(R.id.btn); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mStringBuffer = new StringBuffer(); List<PackageInfo> pagestring = getPackageManager().getInstalledPackages(0); for (PackageInfo p:pagestring){ StringpageName = p.packageName; Log.i("aaa","包名有"+pageName+"\r\n"); mStringBuffer.append(pageName+","); } if (mStringBuffer.toString().contains("com.baidu.BaiduMap")|| mStringBuffer.toString().contains("com.autonavi.minimap")|| mStringBuffer.toString().contains("com.sougou.map.anroid.maps")|| mStringBuffer.toString().contains("com.tencent.map")){ Uri mUri = Uri.parse("geo:39.940409,116.355257?q=西直門"); Intent mIntent = new Intent(Intent.ACTION_VIEW,mUri); startActivity(mIntent); }else { Toast.makeText(MainActivity.this,"請安裝地圖軟體,否則無法使用該軟體",Toast.LENGTH_SHORT).show(); } } }); }
4、附圖

6.png

7.png

8.png
小編整理了Android進階資料,需要的加群:861531554即可免費獲取

11.png

12.png