根据版本号选择android os名称

时间:2017-03-18 11:32:19

标签: android python version

首先,祝大家度过愉快的一天!

我的代码需要通过getprop ro.build.version.release检测正在使用的Android版本。我这样做是使用root和python for android的系统。

暂时我测试的设备代码的东西工作得很好但部分当然是因为我没有考虑新的os版本之间的更新。我刚刚将我正在测试的新版本添加到字典中。

所以让我说我有这本词典:

VersionName = {'4.0':"Ice Cream Sandwich", '4.0.4':"Ice Cream Sandwich", '4.1':"Jelly Bean", '4.2':"Jelly Bean", '4.3':"Jelly Bean", '4.4':"KitKat", '5.0':"Lollipop", '5.1':'Lollipop', '6.0':"Marshmallow", '7.1.1':"Nougat"}

我想补充一下:

'4.4.2':'KitKat'

要保存并检测我正在处理的新版本,但这不会起作用。为了解决这个问题,我只是简单地进行搜索以选择Android版本的第一个和最后一个版本。

VersionName = {'Ice Cream Sandwich':['4.0', '4.0.4'], 'Jelly Bean':['4.1', '4.3.1'], 'KitKat':['4.4', '4.4.4'], 'Lollipop':['5.0', '5.1.1'], 'Marshmallow':['6.0', '6.0.1'], 'Nougat':['7.0', '7.1.1']}

如果更新版本介于两个值之间,则会出现问题。

鉴于{'KitKat':['4.4', '4.4.4']}和设备版本4.4.2,如何检测它是否属于 KitKat

2 个答案:

答案 0 :(得分:1)

可能将min和max存储为两个变量,如果os(version)>则执行。 (最小值): 然后检查os(版本)< (最大值)

答案 1 :(得分:0)

这就是我在提供的帮助下解决问题的方法!有更好的方法我知道,如果有人有另一种方法请分享。

def DroidName(ReleaseVersion):

   # ReleaseVersion = '4.4.2'
   VersionValue = {'Ice Cream Sandwich':['4.0', '4.0.4'], 'Jelly Bean':['4.1', '4.3.1'], 'KitKat':['4.4', '4.4.4'], 'Lollipop':['5.0', '5.1.1'], 'Marshmallow':['6.0', '6.0.1'], 'Nougat':['7.0', '7.1.1']}

   for i in VersionValue.items():
      AndroidName = i[0]
      MinimalValue = i[1][0]
      MaximunValue = i[1][1]
      if ReleaseVersion >= MinimalValue and ReleaseVersion <= MaximunValue:
         print AndroidName, ReleaseVersion
         break