本帖最後由 headuck 於 2015-12-4 20:46 編輯
小鴨幹線開發試驗版(版本0.1.1)已上載到Google Play
此版本只有基本功能;各類黑白、名稱名單尚未啟用,目前希望主要測試下攔截功能。
此版本為試驗用,隨後升級時可能須重新安裝方可正常運作,敬請留意。
試驗版已有的功能,用法及所須權限與小熊舊版大致相若,以下列出要點:
(若你使用Android 5-6,請留意最後的數點,否則程序不會正常運作)
使用說明
App的啟用/停用總掣
總掣在小鴨的右方。
程序設定功能
設定功能位於上方toolbar的設定icon
攔截動作:
- "設定攔截方式",包括接通再掛線,接通再掛線是以模擬bluetooth方法,一般不用root,除非如HTC等一些ROM為bluetooth事件設了額外權限。Android 5.0以上見下文。
- "可使用root方式",當然要root了機方可用,開啟此項方可使用"設定攔截方式"中的root方式。在root dialog中請選擇永久而非限時/再次詢問的權限。
- "通話時仍攔截來電",一般情況,在通話中若有廣告來電,程式不會作掛線動作,因為可能會將現有通話亦掛斷,但以root方式模擬按End call鍵,則或可只攔截廣告來電而不影響原有通話,但請注意部份機種或會無效/或只掛斷原有來電,因此使用前務必測試(最好回報機種及結果)。
- "自動回報廣告電話",default是開的,以協助hkjunkcall監察廣告來電情況,此項只會回報原已在hkjunkcall名單中的電話,不會將其他電話(如設定攔截其他電話)回報。
篩選條件:
- 部份選項會隨其他選項而disable,表示這些選項在此情況下是沒有作用的,例如若攔截不在通訊錄的來電者,則表示匿名來電也會被攔截(因為匿名不會在通訊錄),因此匿名來電的選項會disable。又如攔截匿名來電,則不用再選"攔截來電後的匿名來電",因為後者反正都會被攔截。
- "攔截來電後的匿名來電",及不攔截重覆來電的選項,可以選擇停用,或1-5分鐘的等待時間。在等待時間期間,程式會在通知欄顯示通知(按Android設計,確保服務不會被中止)。
HKJunkcall更新設定功能
HKJunkcall更新設定,位於總覽Tab中 HKJunkcall卡片下方。
- 背景數據是指自動更新及自動/排程提交Junkcall回報,不包括使用者直接使用立即更新及用app按鍵提交的數據。Default設定了只用Wifi下載自動更新,但可用非roaming的mobile提交回報。
- 自動更新設定可高達1日4次,當然沒有新資料時不會重新下載。
- 若設定高於1日1次,更新時間只是指定其中一次的大約時間。
- 為免同時下載,即使指定時間亦會以random方式,大約在該時間下載。
- 若下載失敗(如server問題),會隔一段時間再試,再失敗會隔更長的時間再試(exponential backoff)。
- 若下載時間的網絡條件不符(如設定了只用Wifi而沒有Wifi),則用監察網絡狀態,待連接Wifi時再試。
Junkcall名單
可按第2個tab查閱。
- 在沒有輸入電話搜尋時是按Descending的HKJunkcall BLXXXXX 序號排列,一般是新record在前,輸入電話搜尋後則是按電話順序。
- 行業及嚴重程度以Icon表示,點擊record卡片可查看詳情。
來電攔截/通知紀錄
可按第3個tab查閱。
- 點擊record卡片可查看詳情。除電話及時間外,攔截/不攔截原因及動作也記錄。
- "網絡"是Network Operator的 Mobile Country Code + Mobile Network Code。
- 點擊record卡片後,若非匿名電話,下方的動作中可回撥及回報廣告電話。
- 雙卡機會嘗試記錄SIM Slot(插槽)。Android5.0以上會嘗試記錄SIM卡識別碼(Android系統給予的 Subscription ID,而非SIM卡本身的Unique ID,基本上表示該手機所曾插入的第?張SIM卡)。若使用雙卡機,希望留意及回報是否正確。
回報
- 右下方黃色button是用以回報電話Call log中廣告電話。
雙卡機
- 程式會嘗試辨認雙卡機,及使用雙卡機的非標準API來攔截(Android 5.1前標準Android並無雙卡API)。由於機種眾多很多雙卡機種都未有機會試驗,因此相信在雙卡機上,較大機會出現中止或不能正常運作,希望大家回報有問題的機種。
漫游
- 程式是按Network Operator的 Mobile Country Code來決定來電地區,在香港以外會先去除852,+852,0852或00852字頭再和Junkcall作比較。
- 另一方面,是否啟用漫游攔截動作則是按手機回報該SIM card是否在漫游狀態。因此即使用外地SIM Card在非漫游狀態,理論上也不會將當地電話當為香港電話。
Task killer 及非標準ROM
- 和類似程式一樣,若你使用Task killer等,請設定本程序為例外。若你使用內地各廠的ROM則多數要手動給予電話攔截及自動啟動的權限。
Android 5.0/6.0或以上設定
- Android 5.0或以上,更改了靜音及模擬bluetooth有關的運作,以致原有來電靜音及停止震動方法不能正常運作,亦不能以原有方法模擬bluetooth接聽。解決辦法是要取得看來不相關的 Notification access 權限,方可正常使用(非root)接通再掛線的方式,及在攔截時真正靜音 (見小鴨於Stackoverflow 此處及此處的答案)。此權限須按下述設定,程序不會實際存取手機的任何notification。
- Android 5.0 或以上:請於設定>音效與通知>通知>通知存取權中,將存取權給予小鴨幹線。
- 注意經改動的ROM,設定位置會不同,例如上述設定,三叔是在設定>鎖定螢幕與安全性>其他安全性設定>通知存取。
- 遲些的版本會加入由App跳往此介面,但要測試不同ROM的問題。
Android 6.0或以上設定
- 本程序目前設定了Target Android 6.0, 讓用戶可自行開啟不同權限,本程序會使用電話,聯絡人及SD Card的權限(不過此版本尚未用SD Card), 程序中已加入相關檢查以免彈App,但提示使用者開啟權限介面未做好,因此請作下述設定:
- 請於設定>應用程式>小鴨幹線>權限中開啟電話權限,程式方可運作,開啟聯絡人權限,才可使用通訊錄相關的篩選條件。
- 此外,請於設定>應用程式>(上方設定icon)>在其他應用程式上層繪製內容>將權限給予小鴨幹線,方可確保來電時彈出的視窗正確運作,否則該視窗可能會看不到。
- 另外,Android 6.0的新Doze 及App Standby Mode在實機上對程序攔截及定期更新的影響未經測試(基本上,根據文件,在非充電時,用戶不與App interact一段時間,該App便會被凍結,不能存取網絡,每天可能只被叫醒一次)。希望若在Android 6使用留意一下,是否須關掉此App的Battery Optimization。
權限說明
以下列出各權限用途
- 擷取執行中的應用程式 - (Android 4.4 或以下)待來電介面出現才進行接通動作
- 通訊錄 - 使用通訊錄相關的篩選條件, Android 6以上不使用的話不用開啟
- 手機 / 讀取手機狀態和識別碼 / 系統設定 / 更改音效設定 - 攔截功能所需 (不會使用識別碼)
- 直接撥打電話號碼 - 用於回撥來電
- 讀取/寫入通話記錄 - 用於回報來電及刪除通話記錄
- 相片/媒體/檔案/儲存空間 - 以後版本會用作匯入匯出自訂電話,Android 6以上不使用的話不用開啟
- 繫結至通知偵聽器服務 - (Android 5.0 或以上)上文指的Notification access
- 網絡存取權 - HKJunkcall下載及回報
- 查看網絡連線 - 確保背景數據在網絡連線類型符合條件方使用
- 防止裝置進入休眠狀態 / 啟動時執行 - 確保程序持續生效
- 停用屏幕上鎖 / 覆蓋其他應用程式 - 不同情況下能彈出來電通知
註:ACCESS_SUPERUSER - SuperSU作者Chairfire已depreciate此權限,因些程序沒有列出此權限
希望大家可試試及回報及提出意見,謝謝! |