• Android 查询设备信息c/c++常用方法


    Android查询设备属性c/c++方法

    在Android开发中,可以通过c接口直接获取设备属性,系统接口为:
    int __system_property_get(const char* name, char* value);

    作者: hybase@qq.com 微信: hybase

    实现代码

    下面是作者使用的常用属性

    #include 
    
    typedef struct SDeviceInfo
    {
        char szId[128];
        char szPlatform[128];
        char szHardware[128];
    
        char szBrand[128];
        char szManufacturer[128];
        char szCpuAbi[128];
        char szCpuAbiList[256];
        char szModel[128];
        char szDevice[128];
        char szBoard[128];
    } SDeviceInfo;
    
    static SDeviceInfo g_devInfo;
    __system_property_get("ro.build.id",             g_devInfo.szId);
    __system_property_get("ro.hardware",             g_devInfo.szHardware);
    __system_property_get("ro.board.platform",       g_devInfo.szPlatform);
    __system_property_get("ro.product.brand",        g_devInfo.szBrand);
    __system_property_get("ro.product.manufacturer", g_devInfo.szManufacturer);
    __system_property_get("ro.product.cpu.abi",      g_devInfo.szCpuAbi);
    __system_property_get("ro.product.cpu.abilist",  g_devInfo.szCpuAbiList);
    __system_property_get("ro.product.model",        g_devInfo.szModel);
    __system_property_get("ro.product.device",       g_devInfo.szDevice);
    __system_property_get("ro.product.board",        g_devInfo.szBoard);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    华为电视查询结果

    [device_info_init] ro.build.id       : HUAWEIKANT-350S
    [device_info_init] ro.board.platform : honghu818
    [device_info_init] ro.hardware       : honghu8xx
    [device_info_init] ro.product.brand  : HUAWEI
    [device_info_init] ro.product.manufacturer: HUAWEI
    [device_info_init] ro.product.cpu.abi: arm64-v8a
    [device_info_init] ro.product.cpu.abilist: arm64-v8a,armeabi-v7a,armeabi
    [device_info_init] ro.product.model  : KANT-350S
    [device_info_init] ro.product.device : HWKANT-350S
    [device_info_init] ro.product.board : KANT
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    ro.product 属性

    * ro.product.brand	品牌客户名称,
    * ro.product.model	终端用户可见的产品名称,可以有空格
    * ro.product.manufacturer	产品/硬件的制造商名称
    * ro.product.name	手机正式名称客户项目代号,不要有空格,如果包含空格,会导致Google账号无法登陆
    * ro.product.board	采用的底板/处理器客户项目代号
    * ro.product.device	采用的设备,作用范围:adb shell进去时显示的名称客户项目代号,不要有空格
    * ro.build.product	已经过时,现在使用“ro.product.device”,等同于“ro.product.device”
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    Android 系统属性详情(创维电视案例)

    下面是通过adb方式查询到的详情。供读者参考。

    # begin build properties
    # autogenerated by buildinfo.sh
    ro.build.id=LMY47V
    ro.build.display.id=LMY47V.20181229 test-keys
    ro.build.version.incremental=20181229
    ro.build.version.sdk=22
    ro.build.version.codename=REL
    ro.build.version.all_codenames=REL
    ro.build.version.release=5.1.1
    ro.build.version.security_patch=2015-11-01
    ro.build.version.base_os=
    ro.build.date=Sat Dec 29 15:13:24 CST 2018
    ro.build.date.utc=1546067604
    ro.build.type=user
    ro.build.user=www-data
    ro.build.host=rjyby07
    ro.build.tags=test-keys
    ro.build.flavor=p351-user
    ro.product.model=8A20 V8E
    ro.product.brand=Skyworth
    ro.product.name=p351
    ro.product.device=p351
    ro.product.board=p351
    # ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete,
    # use ro.product.cpu.abilist instead.
    ro.product.cpu.abi=armeabi-v7a
    ro.product.cpu.abi2=armeabi
    ro.product.cpu.abilist=armeabi-v7a,armeabi
    ro.product.cpu.abilist32=armeabi-v7a,armeabi
    ro.product.cpu.abilist64=
    ro.product.manufacturer=Skyworth
    ro.product.locale.language=zh
    ro.product.locale.region=CN
    ro.wifi.channels=11
    ro.board.platform=gxbaby
    # ro.build.product is obsolete; use ro.product.device
    ro.build.product=p351
    # Do not try to parse description, fingerprint, or thumbprint
    ro.build.description=p351-user 5.1.1 LMY47V 20181229 test-keys
    ro.build.fingerprint=Skyworth/p351/p351:5.1.1/LMY47V/20181229:user/test-keys
    ro.build.characteristics=mbx,nosdcard
    # end build properties
    #
    # from device/customer/p351/system.prop
    #
    #add for Coocaa5.x by liyang
    init.svc.adbd=stopping
    persist.sys.usb.config=mtp
    ro.build.dev_owner=system
    ro.build.3Dflag=0
    ro.sf.lcd_density=240
    ro.product.model=8A20 V8E
    ro.product.brand=Skyworth
    ro.product.manufacturer=Skyworth
    ro.build.ccos.type=mix
    ro.build.skymodel=8A20
    ro.build.skytype=V8E
    ro.build.skymid=T968
    ro.build.skyversion.svn=default
    ro.build.skyversion.tianci=default
    persist.service.homepage.pkg=com.coocaa.homeshell
    persist.service.homepage.cls=com.coocaa.homeshell.Activity
    third.get.4k=1
    third.get.h265=1
    #SystemService set
    third.get.mac=0
    third.get.barcode=0
    third.get.launcher.start=0
    third.get.factory=0
    third.get.facSingleKeyEnable=false
    #add by liyang end
    
    #add by sunsikai for new start flow start
    persist.get.facSingleKeyEnable=0
    #add by sunsikai for new start flow end
    
    # Set display related config
    ro.platform.has.mbxuimode=true
    ro.platform.has.tvuimode=true
    ro.platform.has.realoutputmode=true
    
    debug.hwui.render_dirty_regions=false
    #camera max to 720p
    ro.camera.preview.MaxSize=1280x720
    ro.camera.preview.LimitedRate=1280x720x30,640x480x30,320x240x28
    ro.camera.preview.UseMJPEG=1
    
    persist.sys.fastboot=false
    persist.sys.strictmode.disable=true
    
    #if wifi Only
    ro.radio.noril=false
    
    #if need pppoe
    ro.net.pppoe=true
    
    #Dolby DD+ decoder option
    #for TV/IPTV need set RF drc mode by default
    #if defined this prop,will overwrite the value of
    #/sys/class/audiodsp/ac3_drc_control
    #"CUSTOM_0","CUSTOM_1","LINE","RF"
    ro.dolby.drcmode=3
    #this prop to for videoplayer display the DD+/DD icon when playback
    ro.platform.support.dolby=true
    #DTS decoder option
    #display dts icon when playback
    ro.platform.support.dts=true
    #DTS-HD support prop
    #ro.platform.support.dtstrans=true
    #ro.platform.support.dtsmulasset=true
    #DTS-HD prop end
    # Enable player buildin
    media.amplayer.seekkeyframe=true
    media.amsuperplayer.enable=true
    media.amplayer.enable-acodecs=ac3,eac3,rm,dts
    media.amplayer.enable=true
    media.amsuperplayer.m4aplayer=STAGEFRIGHT_PLAYER
    media.amsuperplayer.defplayer=PV_PLAYER
    media.amplayer.thumbnail=true
    media.amplayer.widevineenable=false
    media.amplayer.dsource4local=1
    media.amplayer.startmode=true
    media.arm.audio.decoder=ape,flac,dts,ac3,eac3,wma,wmapro,mp3,aac,vorbis,raac,cook,amr,pcm,adpcm,aac_latm,rm
    media.wfd.use-pcm-audio=false
    media.wfd.videoresolution-type=1
    media.wfd.videoresolution-group=0
    media.wfd.videoframerate=24
    media.wfd.video-bitrate=2000000
    media.html5videowin.enable=1
    media.decoder.vfm.defmap=decoder ppmgr deinterlace amvideo
    media.dtv.running=1
    const.bootanim.delay=2500
    #add for not seek chinese track automaticly
    audio.track.default.chinese=false
    #add for video boot, 1 means use video boot, others not .
    service.bootvideo=1
    # default boot video volume
    sys.bootvideo.vol=5
    
    # Define drm for this device
    drm.service.enabled=1
    
    #used forward seek for libplayer
    media.libplayer.seek.fwdsearch=1
    
    #fix dd test av sync
    media.libplayer.fillzerothrsh=27000
    
    #disable slowsync
    libplayer.slowsync.disable=true
    
    #fix hls sync
    libplayer.livets.softdemux=1
    libplayer.netts.recalcpts=1
    
    #map volume
    ro.audio.mapvalue=0,0,0,0
    
    #add livhls,libcurl as default hls
    media.libplayer.curlenable=true
    media.libplayer.modules=vhls_mod,dash_mod,curl_mod,prhls_mod,vm_mod
    
    #add for chezhenwu
    media.libplayer.show_firstframe=0
    
    #Hdmi In
    ro.sys.hdmiin.enable=true
    mbx.hdmiin.switchfull=false
    mbx.hdmiin.videolayer=false
    
    #adb
    service.adb.tcp.port=5555
    
    #switch different remote control
    persist.sys.remoteid=0e
    
    #hdcp22_key control
    persist.sys.hdcp22key=false
    
    #blutooth volume
    persist.sys.T868.bluth.val=30
    ######## UBOOTENV VARIBLES - r/w as system properties ##########
    #
    #  Now we can load ubootenv varibles to system properties.
    #  We use a special prefix ("ubootenv.var" as default) to indicate that the 'property'
    #  actually is an ubootenv varible.
    #
    #  A ubootenv 'property' will be initialized during system booting. And when user set
    #  a different value, it will be written back to ubootenv device immediately.
    #
    
    ## prefix of ubootenv varibles - should less than 16 chars.
    #UBOOTENV MTD NAME
    #ubootenv.var.bootcmd=
    #ubootenv.var.cpuclock=
    #ubootenv.var.gpuclock=
    #ubootenv.var.memsize=
    #ubootenv.var.ethaddr=
    #ubootenv.var.ipaddr=
    #ubootenv.var.gatewayip=
    ubootenv.var.outputmode=
    #ubootenv.var.screenratio=
    #ubootenv.var.oobeflag=
    ubootenv.var.480p_x=
    ubootenv.var.480p_y=
    ubootenv.var.480p_w=
    ubootenv.var.480p_h=
    ubootenv.var.480i_x=
    ubootenv.var.480i_y=
    ubootenv.var.480i_w=
    ubootenv.var.480i_h=
    ubootenv.var.576p_x=
    ubootenv.var.576p_y=
    ubootenv.var.576p_w=
    ubootenv.var.576p_h=
    ubootenv.var.576i_x=
    ubootenv.var.576i_y=
    ubootenv.var.576i_w=
    ubootenv.var.576i_h=
    ubootenv.var.720p_x=
    ubootenv.var.720p_y=
    ubootenv.var.720p_w=
    ubootenv.var.720p_h=
    ubootenv.var.1080p_x=
    ubootenv.var.1080p_y=
    ubootenv.var.1080p_w=
    ubootenv.var.1080p_h=
    ubootenv.var.1080i_x=
    ubootenv.var.1080i_y=
    ubootenv.var.1080i_w=
    ubootenv.var.1080i_h=
    ubootenv.var.4k2k24hz_x=
    ubootenv.var.4k2k24hz_y=
    ubootenv.var.4k2k24hz_w=
    ubootenv.var.4k2k24hz_h=
    ubootenv.var.4k2k25hz_x=
    ubootenv.var.4k2k25hz_y=
    ubootenv.var.4k2k25hz_w=
    ubootenv.var.4k2k25hz_h=
    ubootenv.var.4k2k30hz_x=
    ubootenv.var.4k2k30hz_y=
    ubootenv.var.4k2k30hz_w=
    ubootenv.var.4k2k30hz_h=
    ubootenv.var.4k2k50hz_x=
    ubootenv.var.4k2k50hz_y=
    ubootenv.var.4k2k50hz_w=
    ubootenv.var.4k2k50hz_h=
    ubootenv.var.4k2k60hz_x=
    ubootenv.var.4k2k60hz_y=
    ubootenv.var.4k2k60hz_w=
    ubootenv.var.4k2k60hz_h=
    ubootenv.var.4k2ksmpte_x=
    ubootenv.var.4k2ksmpte_y=
    ubootenv.var.4k2ksmpte_w=
    ubootenv.var.4k2ksmpte_h=
    ubootenv.var.digitaudiooutput=
    ubootenv.var.defaulttvfrequency=
    ubootenv.var.has.accelerometer=
    ubootenv.var.cecconfig=
    ubootenv.var.cvbsmode=
    ubootenv.var.hdmimode=
    ubootenv.var.is.bestmode=
    ubootenv.var.disp.fromleft=
    ubootenv.var.edid.crcvalue=
    
    ## p351 control uboot env
    ubootenv.var.firstboot=
    ubootenv.var.ipaddr=
    ubootenv.var.gatewayip=
    ubootenv.var.suspend=
    ubootenv.var.ubootversion=
    ubootenv.var.usbboot=
    #disable panel rotate
    ubootenv.var.has.accelerometer=
    ubootenv.var.upgradefbc=
    ubootenv.var.outputmode=
    ubootenv.var.lcd_reverse=
    ubootenv.var.console_bug=
    ubootenv.var.panel_id=
    ubootenv.var.panel_type=
    ubootenv.var.bootfusb=
    ubootenv.var.reboot_mode=
    ubootenv.var.bootonetime=
    
    tv.need.preview_window=true
    #TV project,set omx to video layer,or PQ hasn't effect
    media.omx.display_mode=1
    
    #
    # ADDITIONAL_BUILD_PROPERTIES
    #
    ro.config.wallpaper=/system/etc/default_wallpaper.png
    ro.build.skyversion=018.012.290
    ro.com.android.dateformat=MM-dd-yyyy
    ro.config.ringtone=Ring_Synth_04.ogg
    ro.config.notification_sound=pixiedust.ogg
    ro.carrier=unknown
    ro.config.alarm_alert=Alarm_Classic.ogg
    ro.opengles.version=131072
    camera.disable_zsl_mode=1
    ro.app.optimization=true
    ro.product.firmware=00502001
    ro.product.otaupdateurl=http://10.28.11.53:8080/otaupdate/update
    persist.sys.timezone=Asia/Shanghai
    dalvik.vm.heapstartsize=16m
    dalvik.vm.heapgrowthlimit=192m
    dalvik.vm.heapsize=512m
    dalvik.vm.heaptargetutilization=0.75
    dalvik.vm.heapminfree=512k
    dalvik.vm.heapmaxfree=8m
    sys.fb.bits=32
    ro.hdmi.device_type=0
    wifi.interface=wlan0
    config.disable_bluetooth=false
    ro.config.media_vol_steps=100
    ro.product.support.tvaudio=true
    drm.service.enable=true
    ro.platform.has.pppoe=true
    config.disable_instaboot=false
    persist.sys.dalvik.vm.lib.2=libart.so
    dalvik.vm.isa.arm.features=default
    dalvik.vm.dexopt-flags=m=y
    net.bt.name=Android
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 269
    • 270
    • 271
    • 272
    • 273
    • 274
    • 275
    • 276
    • 277
    • 278
    • 279
    • 280
    • 281
    • 282
    • 283
    • 284
    • 285
    • 286
    • 287
    • 288
    • 289
    • 290
    • 291
    • 292
    • 293
    • 294
    • 295
    • 296
    • 297
    • 298
    • 299
    • 300
    • 301
    • 302
    • 303
    • 304
    • 305
    • 306
    • 307
    • 308
    • 309
    • 310
    • 311
    • 312
    • 313
    • 314
    • 315
    • 316
    • 317
    • 318
    • 319
    • 320
    • 321
    • 322
    • 323
  • 相关阅读:
    领域驱动设计:基于DDD的微服务设计实例
    python爬虫出现问题
    Java -【字符串,数组,哈希表】常用操作
    SWT/ANR问题--ANR/JE引发SWT
    kafka latest 模式消费偏移丢数据
    FreeRTOS使用总结
    GO语言-goroutine协程的使用
    蓝桥杯每日一题2023.9.18
    如何利用淘宝API接口实现商品价格监控?(淘宝API,1688API,京东API同理)
    期末前端web大作业——我的家乡陕西介绍网页制作源码HTML+CSS+JavaScript
  • 原文地址:https://blog.csdn.net/zymill/article/details/126693092