版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、特殊代碼說明一、獲取商米設(shè)備標(biāo)識商米建議通過獲取到以下內(nèi)容來判斷是否商米設(shè)備:.設(shè)備的品牌名brand (如:SUNMI)商米的品牌名統(tǒng)一為SUNMI.設(shè)備的系統(tǒng)型號model (如:V1-B18)系統(tǒng)型號組成為產(chǎn)品型號+硬件特性+-+軟件特性其中以V、M、P、L開頭為手持設(shè)備,以T、D、S開頭為橫屏設(shè)備(截至 2017 年 12 月).設(shè)備的ROM版本號(如:1.1.0)。.設(shè)備的ROM順序號(如:128)。可以下載Demo,仿照Demo在自己項(xiàng)目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);二、獲取設(shè)備的SN
3、號.在AndroidManifest.xml中添加如下權(quán)限。.在需要的地方用以下代碼獲取商米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位數(shù)字或大小寫字母。 (當(dāng)前僅P1設(shè)備支持)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、隱藏及恢復(fù)底部導(dǎo)航欄Android系統(tǒng)默認(rèn)提供了隱藏系統(tǒng)的導(dǎo)航欄的方法,但對于Dialog的支持較差, 導(dǎo)致全屏對話框打開時先彈出導(dǎo)航欄再隱藏(閃屏),SunmiOS針對此問題進(jìn) 行了修復(fù)(VI系統(tǒng)固件版本252后支持,T1系統(tǒng)固件版本132后支持) l.Activity的全屏化 安卓默認(rèn)支持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的全屏化原生系統(tǒng)下AOSP的Bug會導(dǎo)致全屏對話框打開時先彈出導(dǎo)航欄然后再隱 藏導(dǎo)航欄(閃屏)。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();.設(shè)置隱藏后顯示導(dǎo)航欄全局底部上劃上劃后底部導(dǎo)航欄顯示4s, 4s后底部導(dǎo)航欄隱藏切換應(yīng)用至其他APP (如APP內(nèi)跳轉(zhuǎn)至
9、第三方應(yīng)用、第三方APP彈窗等)切換至其他APP是否顯示底部導(dǎo)航欄以第三方應(yīng)用要求為準(zhǔn),切換至自己 APP時底部導(dǎo)航欄消失四、避免重復(fù)申請外設(shè)權(quán)限當(dāng)APP需要通過USB關(guān)聯(lián)外設(shè)來實(shí)現(xiàn)業(yè)務(wù)時(比如連接USB打印機(jī)打印小 票),安卓要求用戶手動確認(rèn)設(shè)備使用權(quán)限,來保障用戶信息安全,防止木馬 非法入侵USB設(shè)備。CustomDialog要在連接此USB設(shè)備時打開CustomDialog嗎?Q默認(rèn)情況下用于該USH設(shè)備在”系統(tǒng)設(shè)置丁應(yīng)用一已下載沖清除默認(rèn)設(shè)首。取消 確定.如何避免USB設(shè)備重新插拔同一個外設(shè)時,APP反復(fù)申請?jiān)撏庠O(shè)權(quán)限 需要用戶手動確認(rèn)時,勾選“默認(rèn)情況下用于該USB設(shè)備”,無法通過代
10、碼繞過 該安全機(jī)制驗(yàn)證DEMO.如何避免設(shè)備重啟后,已勾選“默認(rèn)情況下用于該USB設(shè)備”的APP仍反復(fù)申 請同一個外設(shè)的使用權(quán)限在APP的AndroidManifest中指定某個Activity部分中,添加如下代碼 r C app 口 gnife業(yè) - Andro idManife5rrWTilT 口 3V3在該目錄下創(chuàng)建xml文檔其中,class的值需要和要連接的外設(shè)類型一致,外設(shè)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.如何避免前兩步后設(shè)置后,業(yè)務(wù)頁面會因USB設(shè)備插入而刷新安卓原生邏輯導(dǎo)致用戶選擇“默認(rèn)情況下用于該USB設(shè)備”會導(dǎo)致USB設(shè)備插 入時打開某個指定activity。如果要避免頁面刷新導(dǎo)致業(yè)務(wù)中斷,可以增加如下 代碼防止頁面刷新。五、如何避免自己的應(yīng)用數(shù)據(jù)被清除 應(yīng)用數(shù)據(jù)默認(rèn)是可以通過系統(tǒng)設(shè)置刪除的,刪除后應(yīng)用將恢復(fù)剛安裝的狀態(tài)。 但是可以通過配置APP來精細(xì)管理應(yīng)用數(shù)據(jù)(比如按照業(yè)務(wù)分類或時間刪除數(shù) 據(jù)),也可以避免重要的應(yīng)用數(shù)據(jù)被刪除。 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就是點(diǎn)擊管理空間之后會跳轉(zhuǎn)的那個Activity 了。PS如果要避免數(shù)據(jù)被刪除,可以創(chuàng)建一個自動關(guān)閉的Activity。public class ManageSpaceActivity extends Activity Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);finish();/ onCreate七、如何避免插入usb外設(shè)導(dǎo)致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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年粵教版必修1生物上冊階段測試試卷含答案
- 二零二五年度航空航天材料樣本試驗(yàn)合同3篇
- 二零二五版四合院房產(chǎn)出售與生態(tài)旅游開發(fā)合同3篇
- 2024版外墻保溫勞務(wù)合同
- 2025年粵教版七年級化學(xué)上冊階段測試試卷含答案
- 2025年度網(wǎng)絡(luò)營銷推廣技術(shù)服務(wù)合同4篇
- 獨(dú)特2024年度版權(quán)許可使用合同
- 2025年上教版必修1物理上冊月考試卷含答案
- 校園軟件施工方案
- 二零二五年度房產(chǎn)購置貸款合同標(biāo)準(zhǔn)6篇
- 矩形磚砌渠道施工方案
- 大數(shù)據(jù)與人工智能ppt
- 中醫(yī)科特色診療規(guī)范
- 建筑工程一切險條款版
- PEP小學(xué)六年級英語上冊選詞填空專題訓(xùn)練
- 古建筑修繕項(xiàng)目施工規(guī)程(試行)
- GA 844-2018防砸透明材料
- 化學(xué)元素周期表記憶與讀音 元素周期表口訣順口溜
- 非人力資源經(jīng)理的人力資源管理培訓(xùn)(新版)課件
- 鉬氧化物還原過程中的物相轉(zhuǎn)變規(guī)律及其動力學(xué)機(jī)理研究
- (完整word)2019注冊消防工程師繼續(xù)教育三科試習(xí)題及答案
評論
0/150
提交評論