android的国内定制机上Google Map有可能被阉割。
若我们开发一个使用到了Google Map add-on的Android应用程序(即使用了<uses-library android:name="com.google.android.maps" />),就会发现这个程序不能成功安装在没有内置Google Map add-on的真机中,那么我们有什么办法来解决这个问题呢?
国外一位大牛指出:在<uses-library>标签中还包含了一个没有公布的属性"android:required",你可以将com.google.android.maps库的这个属性设置为false,即:
- <!-- 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是否可用,举例如下:
- 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);
转载自http://www.cnblogs.com/gansc23/archive/2011/02/28/1967207.html