android-cn / topics

Android 精选话题讨论, 微信公众号:codekk, 网站:
https://github.com/android-cn/topics/issues
Apache License 2.0
678 stars 57 forks source link

Android 开发中你遇到过哪些兼容性问题?都是怎么解决的? #2

Open Trinea opened 9 years ago

Trinea commented 9 years ago

由@jasonross 提供,由于开源三方定制系统较多,方便的话,请大家详细描述场景、机型及解决方案,方便其他朋友参考

jasonross commented 9 years ago

场景:使用MIPush,在华为部分手机上无法推送成功。 机型:[华为P6,华为P7] 解决方案:P6和P7是华为的高端机型,不允许推送,防止骚扰用户,无解。

bingoogolapple commented 9 years ago

场景

魅族手机ListView的Item中的EditText无法编辑,点击EditText弹出软键盘后,软键盘会立即自动隐藏

机型

魅族3和魅族4

解决方案

将ListView换成RecyclerView
sfshine commented 9 years ago

场景:HTC M8 从一个Activity 使用QQSDK 登陆, 登陆成功后, 返回Activity结果Activity 被销毁了 机型:HTC M8 等某些带有 虚拟 Menu 键盘的手机 解决方案:后来调查发现是这个Activity是全屏,屏蔽了Menu键盘的黑条. 但是跳转到QQ却把那个Menu的黑条显示了出来, 这导致发生了 screenSize 的变化 从而导致我的Activity销毁了. 知道了这个原因, 在manifest中的 configChanges 添加screenSize 解决了这个问题.

shaobin0604 commented 9 years ago

@jasonross 找到 root cause 了么?

不允许推送的意思是

可否详细一点?

jasonross commented 9 years ago

@shaobin0604 不知道具体怎么做的,华为客服说不允许这两款机型推送。

LeoShangPeng commented 9 years ago

双卡双待手机电话适配,还是有问题有待解决。

ls1110924 commented 9 years ago

场景:Android4.4系统使用了SystemBarTintManager库修改透明状态栏后,会导致根布局从屏幕顶端开始布局,而不是从ActionBar开始布局 机型:所有android4.4机型 解决方案:针对4.4创建一套额外的布局,即layout-v19文件夹,并且在根布局外层再套一层LinearLayout,并在LinearLayout中添加一个属性android:fitsSystemWindows="true"

zourb commented 9 years ago

@bingoogolapple 魅族手机这个问题用ListView实现有其他解决方案吗?

bingoogolapple commented 9 years ago

@zourb 没 :disappointed_relieved: ,都换成RecyclerView了

chdahuzi commented 9 years ago

魅族MX3 Camera拍摄,用setPreviewFormat设置成YV12,预览会变成绿屏,实际用getPreviewFormat显示是支持YV12的 没办法只能设置成NV21了

leiweibo commented 8 years ago

在4.2的版本以及之前里面设置actionbar透明度无效

解决方案: 在Build.VERSION.SDK_INT <= 18的版本中,通过colorDrawable.setAlpha(alpha);设置actionbar背景色透明度的时候,colorDrawable需要设置callback。

 final Drawable.Callback mDrawableCallback = new Drawable.Callback() {
        @Override
        public void invalidateDrawable(Drawable who) {
            getActionBar().setBackgroundDrawable(who);
        }

        @Override
        public void scheduleDrawable(Drawable who, Runnable what, long when) {
        }

        @Override
        public void unscheduleDrawable(Drawable who, Runnable what) {
        }
    };

colorDrawable.setCallback(mDrawableCallback);

tankcong commented 8 years ago

Android 2.3新加入的系统服务DownloadManager/DownloadProvider中的BUG,表示是会收到两条下载结束的广播,同时本次本已下载成功的文件变为0KB(删掉后FileOutputStream新建了个空文件)。 原因: DownloadService并发通知不及时导致下载超出范围错误(HTTP 416)。DownloadThread下载完成后通知DownloadDB再通过Observer通知上层DownloadManager,几率出现在下载完成的一瞬间DownloadManager在DB内下载状态改变之前先获得到下载完成通知,触发DownloadThread错误地进行断点下载造成HTTP416错误,DownloadThread继续认为下载失败并删除已下载文件。 解决办法: 在DownloadThread/DownloadService增加全局锁,此问题在4.1.x被官方修复,官方修改的方案基本相同。

android-feng commented 8 years ago

问题

Android 自定义Perference的时候,系统默认的Perference里Layout的默认值都被厂商改动了。。。一般设计到统一取值的时候,Google都用"?android:attrs。。。。"的格式,但是[Google源码](http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.4_r1/frameworks/base/core/res/res/layout/preference.xml)在此处用了数值,中间title的margin值所有厂商都有变动,导致自定义的Perference和默认的显示不齐

解决

因为App的用户机型比较杂,hack的方法比较不适用,故粘贴Google源码,自己重新封装, 自己统一

ls1110924 commented 8 years ago

PopupWindow中嵌套EditText,会出现EditText长按无法触发“粘贴”选项,可以改成Dialog嵌套EditText,包括DialogFragment。

Dev-Wiki commented 8 years ago

关于息屏亮屏,三星Note系列,S系列会调用Activity的onPause和onStop方法.其他手机会保持在onResume状态

jasonross commented 8 years ago

腾讯Bugly干货分享:Android机型适配之痛

Aspsine commented 8 years ago

@zourb @bingoogolapple 魅族手机上面listview 中edittext的问题我解决了。如果需要我可以提供一个demo。

Lujango commented 8 years ago

@Aspsine 思路是什么啊,也遇到这个问题 还是expandlistview

Aspsine commented 8 years ago

@Ljango

花了两小时撸了个小demo。希望能帮到你。

https://github.com/Aspsine/EditTextInListView

epolar commented 8 years ago

@ls1110924 SystemBarTintManager4.4我的解决方法是为4.4及以上添加了paddingTop去适配,添加layout觉得不好适配。

mackkill commented 8 years ago

Coolpad 8720L 在获取系统相机拍照然后保存在本地有时候会保存不上,获取不到地址。 问题原因:通过调试发现当拍完照返回的时候自己设的成员变量值会被回收,估计就是内存不足的原因。重启机器后就好了。至于代码上的优化还没想到好的解决方案。

voidhug commented 8 years ago

输入法中的emoji适配,Android4.1之前的系统不支持emoji显示,所以对于Android4.1之前的系统,我采用了bitmap来显示emoji。

cpp255 commented 8 years ago

三星手机 问题:APP Activity A调用系统拍照 --> 拍照 --> 在拍好照片的界面做几次横竖屏转换 --> 返回APP界面Activity A ,A 被销毁。 解决: 在csdn上找到的:http://blog.csdn.net/aaawqqq/article/details/37034243 在AndroidManifest.xml中添加

发现是

screenSize

起作用

shaobin0604 commented 7 years ago

问题

OPPO 手机启动 ServiceSecurityException

机型

OPPO

解决

try catch 该异常

参考

yanxinmiao commented 6 years ago

求 App创建快捷方式的 方案 通过发广播的方式,在小米、华为、vivo上创建不了,小米是上测试提示:禁止使用创建快捷方式权限 。现在查到点眉目就是通过AppOpsManager判断有没有这个权限,没有可以调到App设置页面 ,至于华为、vivo没有找到好的办法。

shaobin0604 commented 6 years ago

android.webkit.WebView 泄漏 Activity,影响不少 vivo/meizu 5.x 的设备。

详细说明及解决方法见 Android 5.1 WebView内存泄漏问题及解决