商米特殊代码说明_第1页
商米特殊代码说明_第2页
商米特殊代码说明_第3页
商米特殊代码说明_第4页
商米特殊代码说明_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、特殊代码说明一、获取商米设备标识商米建议通过获取到以下内容来判断是否商米设备:.设备的品牌名brand (如:SUNMI)商米的品牌名统一为SUNMI.设备的系统型号model (如:V1-B18)系统型号组成为产品型号+硬件特性+-+软件特性其中以V、M、P、L开头为手持设备,以T、D、S开头为横屏设备(截至 2017 年 12 月).设备的ROM版本号(如:1.1.0)。.设备的ROM顺序号(如:128)。可以下载Demo,仿照Demo在自己项目src下面新建android.os包(固定写法), 将SystemProperties.java放入该包下,按以下方法获取指定的值:获取brand

2、的代码为:String brand =SystemProperties.get(duct.brand);获取model的方法为:String model =SystemProperties.get(duct.model);获取ROM版本号的代码为:String versionname =SystemProperties.get(ro.version.sunmi_versionname);获取ROM顺序号的方法为:String versioncode =SystemProperties.get(ro.version.sunmi versioncode);二、获取设备的SN

3、号.在AndroidManifest.xml中添加如下权限。.在需要的地方用以下代码获取商米SN号。try (Class c =Class.forName(android.os.SystemProperties);Method get = c.getMethod(get, String.class);Log.i(sunmi, the sn: + (String) get.invoke(c, ro.serialno);Log.i(sunmi, First four characters: + (String) get.invoke(c, ro.serialno).substring(0, 4);

4、 catch (Exception e) e.printStackTrace();.在需要的地方用以下代码获取客户SN号,限定最多16位数字或大小写字母。 (当前仅P1设备支持)try Class c =Class.forName(android.os.SystemProperties);Method get = c.getMethod(get, String.class);Log.i(sunmi, the customer sn: + (String) get.invoke(c, gsm.serial1); catch (Exception e) e.printStackTrace();三、

5、隐藏及恢复底部导航栏Android系统默认提供了隐藏系统的导航栏的方法,但对于Dialog的支持较差, 导致全屏对话框打开时先弹出导航栏再隐藏(闪屏),SunmiOS针对此问题进 行了修复(VI系统固件版本252后支持,T1系统固件版本132后支持) l.Activity的全屏化 安卓默认支持public class MainActivity extends AppCompatActivity Overridepublic void onWindowFocusChanged(boolean hasFocus) super.onWindowFocusChanged(hasFocus);Syste

6、mUIUtils.setStickFullScreen(getWindow().getDecorView ();public class SystemUIUtils public static void setStickFullScreen(View view) int systemUiVisibility =view.getSystemUiVisibility();int flags =View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION| View.SYSTEM_UI_FLAG_LAYOUT_STABLE| View.SYSTEM_UI_FLAG_LAYOU

7、T_FULLSCREEN| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION / hide nav bar| View.SYSTEM_UI_FLAG_FULLSCREEN / hide status bar| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; systemUiVisibility |= flags;view.setSystemUiVisibility(systemUiVisibility);.Dialog的全屏化原生系统下AOSP的Bug会导致全屏对话框打开时先弹出导航栏然后再隐 藏导航栏(闪屏)。public AlertDial

8、og create(boolean fullscreen) LayoutInflater inflater =LayoutInflater.from(context);final AlertDialog dialog = new AlertDialog(context, R.style.DialogStyle);if(fullscreen)SystemUIUtils.setStickFullScreen(dialog.getWindow().getDe corView();.设置隐藏后显示导航栏全局底部上划上划后底部导航栏显示4s, 4s后底部导航栏隐藏切换应用至其他APP (如APP内跳转至

9、第三方应用、第三方APP弹窗等)切换至其他APP是否显示底部导航栏以第三方应用要求为准,切换至自己 APP时底部导航栏消失四、避免重复申请外设权限当APP需要通过USB关联外设来实现业务时(比如连接USB打印机打印小 票),安卓要求用户手动确认设备使用权限,来保障用户信息安全,防止木马 非法入侵USB设备。CustomDialog要在连接此USB设备时打开CustomDialog吗?Q默认情况下用于该USH设备在”系统设置丁应用一已下载冲清除默认设首。取消 确定.如何避免USB设备重新插拔同一个外设时,APP反复申请该外设权限 需要用户手动确认时,勾选“默认情况下用于该USB设备”,无法通过代

10、码绕过 该安全机制验证DEMO.如何避免设备重启后,已勾选“默认情况下用于该USB设备”的APP仍反复申 请同一个外设的使用权限在APP的AndroidManifest中指定某个Activity部分中,添加如下代码 r C app 口 gnife业 - Andro idManife5rrWTilT 口 3V3在该目录下创建xml文档其中,class的值需要和要连接的外设类型一致,外设class参照表如下/*USB class indicating that the class is determined on a per-interface basis.*/public static fina

11、l int USB_CLASS_PER_INTERFACE = 0;/*USB class for audio devices.*/public static final int USB_CLASS_AUDIO = 1;/*USB class for communication devices.*/public static final int USB_CLASS_COMM = 2;/*USB class for human interface devices (for example, mice and keyboards).*/public static final int USB_CLA

12、SS_HID = 3;/*USB class for physical devices.*/public static final int USB_CLASS_PHYSICA = 5;/*USB class for still image devices (digital cameras).*/public static final int USB_CLASS_STILL_IMAGE = 6;/*USB class for printers.*/public static final int USB_CLASS_PRINTER = 7;/*USB class for mass storage

13、devices.*/public static final int USB_CLASS_MASS_STORAGE = 8; /*USB class for USB hubs.*/public static final int USB_CLASS_HUB = 9;/*USB class for CDC devices (communications device class).*/public static final int USB_CLASS_CDC_DATA = 0 x0a;/*USB class for content smart card devices.*/public static

14、 final int USB_CLASS_CSCID = 0 x0b; /* USBclass for content security devices.* USB*/publicstatic final int USBCLASSCONTENTSEC0 x0d;publicstatic final int USBCLASSCONTENTSEC0 x0d;/* USB class for video devices.*/public static final int USB_CLASS_VIDEO = 0 x0e; /*USB class for wireless controller devi

15、ces.*/public static final int USB_CLASS_WIRELESS_CONTROLLER =0 xe0;/*USB class for wireless miscellaneous devices.*/public static final int USB_CLASS_MISC = 0 xef; /*Application specific USB class.*/public static final int USB_CLASS_APP_SPEC = 0 xfe; /*Vendor specific USB class.*/public static final

16、 int USB_CLASS_VENDOR_SPEC = 0 xff;3.如何避免前两步后设置后,业务页面会因USB设备插入而刷新安卓原生逻辑导致用户选择“默认情况下用于该USB设备”会导致USB设备插 入时打开某个指定activity。如果要避免页面刷新导致业务中断,可以增加如下 代码防止页面刷新。五、如何避免自己的应用数据被清除 应用数据默认是可以通过系统设置删除的,删除后应用将恢复刚安装的状态。 但是可以通过配置APP来精细管理应用数据(比如按照业务分类或时间删除数 据),也可以避免重要的应用数据被删除。 75% 14:04r StorageCalendarCalendar36.00 K

17、B0.00 B36.00 KB36.00 KB0.00 B36.00 KBCache12.00 KBStorageTotal App DataCLEAR DATACLEAR CACHE1StorageQQBrowserStorageQQBrowser。 73% 14:0653.38 MB53.38 MB44.35 MB9.02 MBStorageTotal App DataMANAGE SPACECache12.00 KBCLEAR CACHE在程序的manifest文件的application中加上manageSpaceActivity属性,并且指 定一个Activity,这个Activit

18、y就是点击管理空间之后会跳转的那个Activity 了。PS如果要避免数据被删除,可以创建一个自动关闭的Activity。public class ManageSpaceActivity extends Activity Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);finish();/ onCreate七、如何避免插入usb外设导致app界面闪烁 在APP的AndroidManifest中,添加如下代码U appt 白 manirtttsT 口谕Bandroid:configChanges=navigation|keyboardHidden|keyboard3Ctand roid_:riTin= . MaH nA肥_|

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论