android多机型识别

走安卓开发不可避免的遇到很多机型,并且去适配。下面分享两个工具类,可以直接识别机型:

**

* Created with IntelliJ IDEA.

* **********************************

* User: skura_l

* Date: 2016年 01月 20日

*@QQ: 1234567890

* **********************************

*/

public classAndtoidRomUtil {

                private static finalStringKEY_EMUI_VERSION_CODE="ro.build.version.emui";

                private static finalStringKEY_MIUI_VERSION_CODE="ro.miui.ui.version.code";

                private static finalStringKEY_MIUI_VERSION_NAME="ro.miui.ui.version.name";

                private static finalStringKEY_MIUI_INTERNAL_STORAGE="ro.miui.internal.storage";

/**

* 华为rom

*

*@return

*/

public static booleanisEMUI() {

  try{

      finalBuildProperties prop = BuildProperties.newInstance();

       returnprop.getProperty(KEY_EMUI_VERSION_CODE, null) !=null;

}catch(finalIOException e) {

       return false;

  }

}

/**

* 小米rom

*

*@return

*/

public static booleanisMIUI() {

try{

           final String type = android.os.Build.MODEL;

           final Build Properties prop = Build Properties.newInstance();

          /*String rom = "" + prop.getProperty(KEY_MIUI_VERSION_CODE, null) +                      prop.getProperty(KEY_MIUI_VERSION_NAME, null)+prop.getProperty(KEY_MIUI_INTERNAL_STORAGE, null);

           Log.d("Android_Rom", rom);*/

           returnprop.getProperty(KEY_MIUI_VERSION_CODE, null) !=null

           || prop.getProperty(KEY_MIUI_VERSION_NAME, null) !=null

            || prop.getProperty(KEY_MIUI_INTERNAL_STORAGE, null) !=null

           || type.length() >"MI".length() && type.substring(0,"MI".length()).equals("MI");

        }catch(finalIOException e) {

return false;

}

}

/**

* 魅族rom

*

*@return

*/

public static booleanisFlyme() {

try{

         finalMethod method = Build.class.getMethod("hasSmartBar");

           returnmethod !=null;

}catch(finalException e) {

          return false;

  }

 }

}


/////////////////

public classBuildProperties {

           private finalPropertiesproperties;

           privateBuildProperties()throwsIOException {

           properties=newProperties();

             properties.load(newFileInputStream(newFile(Environment.getRootDirectory(),"build.prop")));

}

public booleancontainsKey(finalObject key) {

             returnproperties.containsKey(key);

}

public booleancontainsValue(finalObject value) {

              returnproperties.containsValue(value);

}

publicSet>entrySet() {

   returnproperties.entrySet();

}

publicStringgetProperty(finalString name) {

       returnproperties.getProperty(name);

}

publicStringgetProperty(finalString name, finalString defaultValue) {

       returnproperties.getProperty(name,defaultValue);

}

public booleanisEmpty() {

       returnproperties.isEmpty();

}

publicEnumerationkeys() {

   returnproperties.keys();

}

publicSetkeySet() {

returnproperties.keySet();

}

public intsize() {

returnproperties.size();

}

publicCollectionvalues() {

returnproperties.values();

}

public staticBuildPropertiesnewInstance()throwsIOException {

return newBuildProperties();

}

}


注意: 其实只要这样就可以了String type = android.os.Build.MODEL; 这个返回的东西就可以区别手机,打印出来看就行了。 简书没用过多久,完全不会排版,而且直接copy过来空格会消失。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,908评论 18 139
  • 最近有个需求需要建一个service永远在后台运行来接收推送消息和一些定时器工作,首先想到的就是双进程守护原则...
    lib93阅读 1,241评论 0 2
  • 其实呢,我属于小白一枚,刚刚入手学习微信平台运营。以下呢,是我的作业,初次接触,请大家多多指教哦! 首先,我注册了...
    摩羯段阅读 178评论 0 0
  • 因为我们的应用是单页客户端应用,当使用 history 模式时,URL 就像正常的 url,可以直接访问,但是因为...
    qhaobaba阅读 2,832评论 1 1
  • 昨天终于看过了《二十二》,其中印象最深刻的是山西省志愿者,最后他说一开始了解这些老人,是为了让日本给她们应有的赔偿...
    一个人的太阳_阅读 225评论 0 0