如何在Android真機上檢測是否有Google Map add-on – Android移動開發技術文章_手機開發 Android移動開發教學課程

並不是所有的Android真機中都帶有Google Map add-on,要想內置Google Map add-on是需要和google商談的。

    但是若我們開發一個使用到瞭Google Map add-on的Android應用程序(即使用瞭<uses-library android:name="com.google.android.maps" />),就會發現這個程序不能成功安裝在沒有內置Google Map add-on的真機中,那麼我們有什麼辦法來解決這個問題呢?


方法有兩個:

1)維護兩條代碼分支:
    一條分支是針對於內置有Google Map add-on的Android真機,另一條分支是沒有內置有Google Map add-on的Android真機。
但是這樣做會增加維護成本,而且粗心的用戶可能會在自己的機器上安裝瞭不匹配的分支,從而降低瞭軟件的友好度。

2)仍然隻保留一條代碼分支:
    國外一位大牛指出:在<uses-library>標簽中還包含瞭一個沒有公佈的屬性"android:required",你可以將com.google.android.maps庫的這個屬性設置為false,即:

Java代碼 
<!– The "android:required" attribute was added in API level 5 (Android 2.0) –> 
<uses-library android:name="com.google.android.maps" android:required="false" /> 

 

    這代表如果在目標機器上內置瞭Google Map add-on,則可以正常使用應用;如果目標機器沒有內置Google Map add-on,也可以成功安裝應用。但是開發人員需要在代碼中自行判斷Google Map add-on是否可用,舉例如下:
Java代碼 
try { 
Class.forName("com.google.android.maps.MapActivity"); 
} catch (Exception e) { 
Toast.makeText(MainActivity.this, "Oop! google地圖不可用", Toast.LENGTH_SHORT).show(); 
return; 

 
Intent intent =new Intent(); 
intent.setClass(MainActivity.this, MyMapActivity.class); 
 
startActivity(intent); 

 

作者“multiarrow”
 

發佈留言