以下是我在开发过程中遇到的android版本兼容需要注意的几个地方(会继续补充):
一、 api 19 4.4以下,不能获取通知的开关状态
1. 4.4以上获取状态:
```
NotificationManagerCompat manager = NotificationManagerCompat.from(MyApplication.getInstance().getContext());
        boolean isOpened = manager.areNotificationsEnabled();
```
2. 跳转到权限设置:
// 根据isOpened结果,判断是否需要提醒用户跳转AppInfo页面,去打开App通知权限
```
Intent intent = new Intent();
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", MyApplication.getInstance().getPackageName(), null);
                    intent.setData(uri);
                    startActivity(intent);
```


二、 安装权限
1. 22 之前,也就是android5.1之前包括5.1,在清单文件中注册过的权限默认都是开启状态的,但是23之后,默认的就是没有开启,所以,我们只需要吧targetSdkVersion改为小于22就可以了,这样用户安装后权限默认就是给予的状态,就解决了这个问题。不过api小于22时不能弹出运行时权限弹窗,如果用户关了,只能提示用户去设置里开启权限;


三、 全局悬浮按钮
1. 7.0以上,使用TYPE_PHONE,是应用内全局;7.0以下,使用TYPE_TOAST,是系统级全局;


四、 关于定位的运行时权限
1. targetSDKVersion < 23 & API(手机系统) < 6.0:安装时默认获得权限,且用户无法在安装App之后取消权限。
2. targetSDKVersion >= 23 & API(手机系统) < 6.0:安装时默认获得权限,且用户无法在安装App之后取消权限。
3. targetSDKVersion < 23 & API(手机系统) >= 6.0:安装时默认获得权限,但是用户可以在安装App完成后动态取消授权。
4. targetSDKVersion >= 23 & API(手机系统) >= 6.0:安装时不会获得权限,可以在运行时向用户申请权限。用户授权以后仍然可以在设置界面中取消授权。


五、 js交互
1. 4.2以下,h5通过webview与原生交互有安全问题;


六、 虚拟机
1. android从5.0开始,虚拟机由原来的Dalvik虚拟机改成了ART(android run time)虚拟机;


七、 状态栏
1. android6.0 api23之后才可以设置状态栏字体颜色;

更多相关文章

  1. Pycharm安装PyQt5的详细教程
  2. Android完全退出应用程序的方法
  3. 2011.09.07(4)——— android 跨进程通信之content provider
  4. Windows环境下Android(安卓)Studio v1.0安装教程、快捷方式
  5. Android(安卓)Gesture Detector
  6. android应用程序的安装位置
  7. android 权限设置
  8. 同时安装调试两个相同的应用 android:package 用来区分两个应用
  9. Android(安卓)操作权限大全 (android.permission)

随机推荐

  1. 处理空列表
  2. Android拾萃 - RxJava2之创建操作符及其d
  3. Android线程学习 一
  4. android再点一次返回退出
  5. Android 倒计时功能实现
  6. android audio 音量设置分析
  7. android之MIME type
  8. Android wifi休眠策略
  9. android音乐播放器源码java类
  10. DataBinding(双向绑定)