android 新的開源架構androidx, 將一統目前混亂的函式庫架構

請參考這個

AndroidX is the open-source project that the Android team uses to develop, test, package, version and release libraries within Jetpack.

舊版架構對應到androidx可在以下連結找到對應

https://developer.android.com/jetpack/androidx/migrate

小米6刷lineage os注意事項

若是全部重來(format), 請注意第一次重開機時, 不要設定pin code , 否則會導致進twrp時, 無法解碼(decrypt data), 請全部開機成功後,再設定pin code .

若是進twrp解碼真的有問題, 請雙清後, 再刪除/data/system/ 裡面 所有.key 檔案, 與locksetting字樣的檔案. 然後重新開機,進入初始狀態(一樣不要設定pin code).

jgit for android version

前一陣子突然想在android玩git , 因此測試了一下Eclipse 內的 jgit library

發現原本我的 InMethodJakarta 專案所含的 jgit 4.6 版library 居然無法相容android,

最後終於發現 jgit 4.6以後至少要java 8, 但 android 有些不相容.

測試了好久, 從最新的jgit 5.4版本降測到3.7.1, 終於成功了. 又再往上測試到4.5版也可相容 android , 因此寫下來做個紀念

下載的地方在這裡

優化Android搜尋藍牙裝置方式(API 21)

Android 6.0(API 21)以後, 搜尋藍芽裝置的方式改成:

BluetoothAdapter.startScan (ScanCallback callback)

這種方式我一直用了很久, 也沒遇到問題.

直到有一個需求是隨時監控廣播封包,

這種寫法就會遇到問題, 無法快速取得周遭藍牙廣播資料, 因此需要修改寫法, 把能下的藥都下下去(但耗電):

final List<ScanFilter> filters = new ArrayList<>();
ScanFilter filter = new ScanFilter.Builder().build();
filters.add(filter);

final ScanSettings scanSettings =
        new ScanSettings.Builder() .setNumOfMatches(ScanSettings.MATCH_NUM_MAX_ADVERTISEMENT).setMatchMode(ScanSettings.MATCH_MODE_STICKY).setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES).setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY).build();


BluetoothAdapter.getBluetoothLeScanner().startScan(filters,scanSettings,mLeScanCallback);

Android NFC啟用 小工具 NfcToggler

咖啡偶手機小米6原本刷成 LineageOS 15.1 , 但後來為了使用NFC-SIM 悠遊卡 , 只好捨去 LOS , 改刷成小米國際版, 這個版本可以讓NFC功能從Google Pay的HCE功能, 切換 SIM 錢包(也就是nfc-sim)功能.

但是問題來了, 我認為 NFC 平常要關閉,

原本 LOS 15.1內建快速切換工具, 滑下來按一下就可以啟用與停用.

但小米的國際版本不行, 只能選來選去然後停用, 因此寫了一隻小工具widget (需要ROOT) , 按一下就可以方便的啟用與停用, 有興趣可以點選這裡參考看看.

#android

#taiwan

#nfc

 

android手機的NFC功能之一是可使用悠遊卡

台灣現在支付方式滿天飛, 只要有手機在, 隨便都可以在不需要帶現金的情況下, 用各種商家接受的付款方式付款,如街口支付, Line Pay , Samsung Pay , Apple Pay, Taiwan Pay , 歐付寶等等.

但是就只有一個情況下, 必須要用到android的NFC功能,  因為到目前為止:

捷運, 公車, ubike 或是某些商家的支付方式, 還僅限於悠遊卡/一卡通/iCash

像之前咖啡偶出門騎單車/跑步, 常常遇到網路不穩定, 電子支付方式無法成功,

或是遇到商家只接受悠遊卡, 可是又不想要出門時, 悠遊卡帶來帶去放在防水袋中, 然後運動完又要將卡放回去皮包, 有夠不方便的, 此時就需要手機兼具悠遊卡功能.

攻略如下:

  1. 到電信商將你的sim卡升級成NFC-SIM卡, 有些搭配聯名卡還能自動儲值
  2. 換一隻支援NFC-SIM卡的NFC手機(可問電信商直營店)

因為悠遊卡不需要網路暢通, 甚至無網路就能使用, 是很好的特性.如圖:

 

 

 

 

 

 

 

 

 

 

啊有人說貼一張悠遊卡就好了. 這作法當然可行, 可是就弱掉了, 好像貼一張狗皮藥膏, 卡卡的,也難看!
讓sim卡兼具悠遊卡功能多好啊, 而且還免費, 而且就算換了家電信商, 也還能繼續使用呢.

#nfc-sim

#android

#悠遊卡

ubuntu 無法辨識android裝置no permissions

ubuntu連線到android裝置很方便, 安裝程式很簡單:

sudo apt install android-tools-adb android-tools-fastboot

但是常常卡到執行指令 adb devices 想要列出手機時, 出現 no premissions的錯誤

List of devices attached 
????????????    no permissions

原來是要設定usb連線權限
1. 找出google 的裝置

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp. 
Bus 001 Device 002: ID 05c8:03a2 Cheng Uei Precision Industry Co., Ltd (Foxlink) 
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

2. 將該device加到 /etc/udev/rules.d/70-android.rules
70代號可改, 無此檔案也可自行新增
新增內容如下:

SUBSYSTEM=="usb",ATTRS{idVendor}=="18d1",ATTRS{idProduct}=="4ee7",MODE="0666"

3. 重開

  sudo /etc/init.d/udev restart 

PS.

手機不同狀態下(sideload , recovery , system) 都可能有不同的usb id , 因此可能要設定多次

android 刷機好法子"側邊載入(sideload)"

咖啡偶的目前手機是小米6, 因為常常刷機, 版本差異又大,每次刷機,必須重新格式化手機,

因此會用到usb otg, 把要刷的rom放到usb磁碟上, 當手機進入 recovery 的時候, 就可以放心格式化手機, 並且把usb上的rom刷入手機.

但是這方式有點麻煩,需要準備平時也用不著的usb ota,

所以很久以前android就發展sideload的方式刷機, 電腦直接刷rom進去手機, 這就方便多了.

1.手機進入recovery的sideload等待畫面

 

 

 

 

 

 

 

 

 

2.電腦使用adb sideload 指令刷入rom

1 2