关于魅族机型适配问题

2018-06-11  本文已影响15人  Felix_lin

一、魅族hold 下拉悬停功能的屏蔽

二、魅族SmartBar适配

  1. 通过反射调用魅族官方API ,判断是否含有SmartBar

     protected boolean hasSmartBar() {
         try {
             // 新型号可用反射调用Build.hasSmartBar()
             Method method = Class.forName("android.os.Build").getMethod(
                     "hasSmartBar");
             return ((Boolean) method.invoke(null)).booleanValue();
         } catch (Exception e) {
    
         }
         // 反射不到Build.hasSmartBar(),则用Build.DEVICE判断
         if (Build.DEVICE.equals("mx2")) {
             return true;
         } else if (Build.DEVICE.equals("mx") || Build.DEVICE.equals("m9")) {
             return false;
         }
         return false;
     }
    
  2. 对含有SmartBar的机型进行调空适配,这个因人而异不给出代码了,可以设置弹窗的起始高度,也可调正按钮高度等

  3. 有一点又需注意,在魅族5.0系统中,魅族在个人设置中给出了SmartBar的控制开关,在SmartBar关闭的情况下,上述判断返回true
    比较坑爹,因此我又对不同机型和系统做出判断和处理,5.0的以后的机型独立配置了一个UI界面,是的在包含SmartBar的情况下也较为美观,如大家有好的解决方法欢迎给出,感激不尽!调用机型的API在下给出,具体的代码个人把控

     Log.d("fmer", "手机型号: " + android.os.Build.MODEL + ",\nSDK版本:"
             + android.os.Build.VERSION.SDK + ",\n系统版本:"
             + android.os.Build.VERSION.RELEASE);
    
  4. 如需更多的魅族适配处理,可以参考魅族官方的 Meizu SmartBar开发指南 和他的Demo查看

上一篇 下一篇

猜你喜欢

热点阅读