`
gjhappyyy
  • 浏览: 259620 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

android:required="false"

 
阅读更多

 

如何在Android真机上检测是否有Google Map add-on

 

 

并不是所有的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,即:

<!-- 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);





参考:
[1] http://stackoverflow.com/questions/3909903/disable-mapview-if-it-is-not-supported
[2] http://androidforums.com/application-development/140147-does-all-android-devices-support-map-api.html
分享到:
评论

相关推荐

    anroid 全景图

    android 全景 涉及权限 uses-permission android:name="android.permission.INTERNET" /&gt; &lt;uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /&gt; ... android:required="false" /&gt;

    Android代码-摄像头实时滤镜处理库

    CameraFilters ... android:required="true"/&gt; Step 1 mFilterManager = FilterManager .builder() .context(mApplicationContext) .isUseQiniu(false)//是否在qiniu云直播上使用滤镜

    com.google.android.maps.jar

    &lt;uses-feature android:name="android.hardware.location.network" android:required="false" /&gt; &lt;uses-feature android:glEsVersion="0x00020000" android:required="true" /&gt; ``` 接下来,我们需要在布局文件中...

    Android 调用前摄像头拍照存储,根据打开时横竖屏切换preview

    &lt;uses-feature android:name="android.hardware.camera" android:required="false" /&gt; &lt;uses-feature android:name="android.hardware.camera.front" android:required="false" /&gt; &lt;uses-permission android:name...

    Android二维码扫描集成步骤,一步一步实现系列

    &lt;uses-feature android:name="android.hardware.camera" android:required="true" /&gt; ``` 此外,如果使用EasyPermissions库来处理权限,还需要在`&lt;application&gt;`标签内声明权限请求的回调类: ```xml ... ...

    安卓开发-android写的google map api 应用.zip.zip

    &lt;uses-feature android:name="android.hardware.location.network" android:required="false" /&gt; &lt;uses-feature android:name="android.hardware.location.gps" android:required="false" /&gt; ``` 然后,创建一个布局...

    android地图demo

    &lt;uses-feature android:name="android.hardware.location.network" android:required="false" /&gt; ... android:name="com.google.android.geo.API_KEY" android:value="YOUR_API_KEY"/&gt; ... ``` 接着,在...

    abilityshell_ide_java.jar

    &lt;uses-feature android:name="zidane.software.ability" android:required="false" /&gt; 3. 向application节点下新增子节点。 &lt;meta-data android:name="permZA" android:value="true" /&gt; &lt;meta-data android:...

    android调用拍照存储demo

    &lt;uses-feature android:name="android.hardware.camera" android:required="true" /&gt; &lt;uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /&gt; &lt;uses-permission android:name="android....

    AS安卓开发百度地图

    &lt;uses-feature android:name="android.hardware.touchscreen" android:required="false" /&gt; ``` 接着,创建一个百度地图的Activity。在布局文件中添加MapView控件,并设置其属性: ```xml android:id="@+id/...

    android 调用系统相机

    &lt;uses-feature android:name="android.hardware.camera" android:required="true" /&gt; &lt;uses-permission android:name="android.permission.CAMERA" /&gt; &lt;uses-permission android:name="android.permission.WRITE_...

    Android调用摄像头拍照(兼容7.0)

    &lt;uses-feature android:name="android.hardware.camera" android:required="true" /&gt; &lt;uses-permission android:name="android.permission.CAMERA" /&gt; ``` 这里的`uses-feature`标签表明应用需要使用摄像头功能,`...

    AI双录对接文档-Android版本

    &lt;uses-feature android:name="android.hardware.camera.autofocus" android:required="false" /&gt; &lt;uses-feature android:name="android.hardware.camera.front" android:required="false" /&gt; &lt;uses-feature android:...

    android调用系统相机,比较兼容

    &lt;uses-feature android:name="android.hardware.camera" android:required="true" /&gt; &lt;uses-permission android:name="android.permission.CAMERA" /&gt; &lt;uses-permission android:name="android.permission.WRITE_...

    android google map example

    &lt;uses-feature android:name="android.hardware.location.network" android:required="false" /&gt; android:name="com.google.android.geo.API_KEY" android:value="YOUR_API_KEY_HERE" /&gt; ``` 现在,我们需要在...

    viroReact配置文件参考

    &lt;uses-feature android:name="android.hardware.vr.high_performance" android:required="false"/&gt; ``` 以及: ```xml android:name="com.viromedia.bridge.activity.ViroActivity" android:configChanges...

    Android手电筒源代码

    &lt;uses-feature android:name="android.hardware.camera.flash" android:required="false" /&gt; ``` UI设计方面,一个简单而直观的开关按钮通常用于控制手电筒的开启和关闭。按钮的状态需要实时反映闪光灯的当前状态,...

    使用vitamio做播放器在listview中实现播放

    &lt;uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" /&gt; &lt;uses-feature android:name="android.hardware.audio.lowlatency" android:required="false" /&gt; ...

    Android webview调用相机和相册

    &lt;uses-feature android:name="android.hardware.camera" android:required="true" /&gt; &lt;uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /&gt; &lt;uses-permission android:name="android....

    Android应用源码之使用Vitamio打造自己的万能播放器(1)——在线播放.zip

    &lt;uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false"/&gt; &lt;uses-feature android:name="android.hardware.wifi" android:required="false"/&gt; ``` 在Activity中,你需要...

Global site tag (gtag.js) - Google Analytics