
今天在开发一个小应用的过程中,需要用到一个功能“ 复制文本到粘贴板”
android.content.ClipboardManager cmb = (android.content.ClipboardManager) Activity.this
.getSystemService(Show.this.CLIPBOARD_SERVICE);
cmb.setText("文本");
嗯,在模拟器上(android 4.1)完美运行了。于是把程序签名打包,然后上传了一份在市场。
同时,把签名好的apk复制到我手机上,前面一切正常,点击一下复制按钮。
程序以外中止了!!
神马情况。
百度一下,原来 对剪切板的操作,api 11之前使用 android.text.ClipboardManager 而 api 11之后使用 android.content.ClipboardManager。
我的手机是2.3.7 ,难怪会出错。
这个地方没办法用同样的代码来完成,所以最后,我是这样做的:
1.获取当前系统的版本号 int v = android.os.Build.VERSION.SDK_INT;
2.判断v的值,根据其和11的关系来使用不同的类。

这个东西,不仅仅是局限在这个剪贴板的操作,还有很多地方,对不同的版本有不同的代码,在查询手册的时候一定要看看这个代码是针对 api 多少的,不要在低版本的手机中使用高版本才支持的代码,不然会出错。