如何在android中使“uses-library”可选

时间:2010-11-07 10:45:45

标签: android google-maps

我已经构建了一个使用谷歌地图功能的Android应用程序。我希望我的应用程序安装在不安装Google Map的手机上,在这种情况下,我会禁用地图功能。

清单文件中有一个“uses-library”标签,我该怎么做?

3 个答案:

答案 0 :(得分:6)

@CommonsWare:我认为你是指 android:必需而不是 android:启用

这样的事情:

    <uses-library
        android:name="com.google.android.maps"
        android:required="false" />

答案 1 :(得分:1)

android:enabled上有一个未记录的<uses-library>属性。但是,Dianne Hackborn在讨论中提到它,告诉我们使用它,所以我希望这是一个文档错误,并且它是真正支持的。

拥有android:enabled="false",然后使用反射查看是否存在MapActivity,应该为您提供所需的AFAIK。

答案 2 :(得分:0)

你绝对应该使用反射。使您的地图活动成为Singleton并为其公共方法创建一个接口。然后使用try catch通过类加载器检查类是否存在。如果是这样,请在try中调用start activity。如果需要与类进行交互,则将类型接口的实例声明为数据成员,并使用反射与其进行交互。