2012-03-12 127 views
2

我有一個適合我公司的大型Android應用程序,我們大量使用Google Maps API顯示位置,包括使用疊加層的活動。現在的問題是支持較低端的Android平板電腦。由於大多數人不支持谷歌地圖,我們的應用程序甚至不會安裝它們。只有在設備上可用時,是否可以告訴清單需要Google Maps API?如果不可用,那麼我只會禁用映射功能。是否可以選擇性地要求Google Maps API支持?

回答

6

是否有可能告訴清單需要谷歌地圖API只有當它在設備上可用?

是的。在請求Google地圖的<uses-library>元素中包含android:required="false"。然後,您可以使用反射來查看Dalvik虛擬機中是否存在MapActivity,如果存在,則表示您位於具有地圖功能的設備上,並且可以安全地啓動地圖。如果它不存在,則需要禁用您的映射功能。

Here is a sample application展示這一點,與MapDetectorLAUNCHER的活動,看是否存在MapActivity,然後要麼將控制推進到一個實際的執行MapActivity或者如果應用程序是一個非谷歌地圖的設備上運行提出了一個Toast

下面是該項目的MapDetector活動實施:

public class MapDetector extends Activity { 
    @Override 
    public void onCreate(Bundle instanceState) { 
    super.onCreate(instanceState); 

    try { 
     Class.forName("com.google.android.maps.MapActivity"); 
     startActivity(new Intent(this, NooYawk.class)); 
    } 
    catch (Exception e) { 
     Toast 
      .makeText(this, 
         "Google Maps are not available -- sorry!", 
         Toast.LENGTH_LONG) 
      .show(); 
    } 

    finish(); 
    } 
} 
+0

非常感謝你。這正是我所期待的。 – 2012-03-12 17:28:51

相關問題