我想以編程方式隱藏/顯示我的主叫號碼。我試圖在android文檔中找到它,但沒有運氣。也許你有什麼想法?android外撥主叫號碼 - 開/關
回答
我張貼的問題問這在谷歌Android組,得到了在完全沒有任何答案。我也看到了一些關於SO的其他問題,這些問題也沒有答案(或沒有答案)。
我得出的結論是,這根本不可能。我的推理是這樣的...
如果我去設置 - >通話 - >其他設置,我看到一個AlertDialog有一個HeaderTitle'通話設置',我看到一個循環進度指示和一條消息'閱讀設置...「。
在我看來,我的手機就是在那個時候訪問我的手機/網絡提供商。最終的'選擇器'對話框爲我提供了'網絡默認','隱藏號碼'和'顯示號碼'的選項,當我做出選擇時(或者即使我只是'取消'對話框),我會得到另一個帶有循環進度的AlertDialog指示燈顯示消息'更新設置...'。
簡而言之,看起來來電顯示設置並不完全是「本地」的電話設置,並依賴與提供商的交互,並且無論出於何種原因,由於Android API不允許這樣做被編程操縱。
我不知道這是否是「要做」清單上的東西對Android系統,或者是否有允許它做或其他一些原因,法律/安全影響未來的版本。無論情況如何,我還沒有找到任何人能夠解釋爲什麼沒有TelephonyManager(例如)簡單地切換此方法。
編輯:沒有運氣獲得附加設置AlertDialog與標準的API。
我說的原因是,它可能拉起設備的「設置」的各個部分,例如,在我的應用程序之一我使用android.provider.Settings.ACTION_WIRELESS_SETTINGS在一個Intent的構造函數中傳遞給startActivity()。這將打開啓用/禁用Wi-Fi,移動互聯網和藍牙的設置頁面。
android.provider.Settings對於其他設置頁面還有其他類似的ACTION,但沒有一個用於'Call',不介意調用 - >其他設置,AlertDialog沒有任何東西允許您選擇隱藏/顯示外發來電顯示。
如果能做到,那麼就必須是一個未公開的API,除非我完全錯過了(我花了很長的時間尋找)。我懷疑檢查Android源代碼可能是唯一的方法來找到答案,我還沒有嘗試過。
來電顯示是網絡特定的,不是電話控制的。事實上,在某些移動網絡配置中,手機甚至不知道自己的電話號碼。
某些網絡支持發送激活/去激活呼叫者ID網絡命令。在GSM中,這通常是#31#。它可以是永久的或每個呼叫的基礎上。
- 永久請求網絡隱藏所有呼叫的主叫方ID。
- 每個呼叫請求網絡僅爲該呼叫隱藏呼叫者ID。後者是通過在#31#中調用號碼的前綴來實現的,例如調用#31#85432786426會呼叫85432786426隱藏調用者。
有些網絡支持這兩種網絡,有些網絡只支持其中之一,有些則不支持。試試你的運氣,並嘗試用#31#前綴撥號號碼,看看它是否有效。
http://www.gsm-security.net/faq/gsm-caller-id-clip-clir.shtml
在你的鏈接中,我看到了CallerID數據的接收和傳輸。 * 31#是否標識我接到電話的隱藏號碼?我想更詳細地解釋那裏寫的命令表。 – 2012-08-07 19:18:21
隱藏或替換來電顯示的一個想法是進行基於互聯網的呼叫,即帶有操縱ID的VOIP呼叫。 – Skynet 2013-08-19 05:43:06
如果你想有一個快捷方式到額外通話設置,您可以使用App Cut
並選擇GSM設置。它會在您的主屏幕上放置一個快捷方式。
如果#31#技巧可以滿足您的單個呼叫需求,那麼您可以添加一個廣播接收器,用於偵聽呼出通知並修改號碼以在撥號前包含#31#。 Android允許通過這種方式改變號碼。
只有當您的默認設置爲啓用來電顯示和您的網絡支持#31#並且您希望使用小部件將其關閉時纔有效。
我已設法獲得其他呼叫設置對話框。說明如下:
雖然它看起來像是設置的一部分,實際上它是Native PhoneApp的一部分。如果您看一下PhoneApp的AndroidManifest.xml,您將看到Activity GsmUmtsAdditionalCallOptions已經爲android.intent.action.MAIN定義了IntentFilter。
所以,我檢查的幾個手機正常工作的代碼:
Intent additionalCallSettingsIntent = new Intent("android.intent.action.MAIN");
ComponentName distantActivity = new ComponentName("com.android.phone", "com.android.phone.GsmUmtsAdditionalCallOptions");
additionalCallSettingsIntent.setComponent(distantActivity);
startActivity(additionalCallSettingsIntent);
- 1. android:撥打號碼
- 2. 在Android的撥號環來電呼叫
- 3. 主叫電話號碼
- 4. Android連接中的開始呼叫(非撥號)
- 5. android代碼撥號暫停號碼
- 6. 通過撥打號碼啓動應用程序,然後斷開呼叫:Android
- 7. ANDROID預先撥打號碼
- 8. Android如何在撥號中撥打包括「#」或「p」的呼叫?
- 9. 撥號在Android手機號碼
- 10. 在Android中自動撥號號碼
- 11. 查看Android撥號器中的號碼
- 12. Twilio - 轉移呼叫和顯示撥號前撥打的電話號碼
- 13. 在lync中啓動呼叫後撥號號碼
- 14. 撥打號碼
- 15. 從Android撥號獲取號碼?
- 16. Android主號碼
- 17. 星號傳入呼叫DID問題(撥打的號碼)
- 18. 通過應用撥號時阻止被叫號碼
- 19. 從撥號盤主叫號碼返回警告:「呼叫需要可以由用戶拒絕許可」
- 20. Android。從撥號
- 21. 如何撥號以從撥號方案內發起呼叫?
- 22. NFC智能撥號撥打號碼
- 23. 獲取撥號在本機撥號android
- 24. twilio撥打號碼
- 25. 如何在使用電話管理器的Android通話期間接收由主叫方撥打的號碼
- 26. Android調用撥號
- 27. Android:撥打一個自定義號碼,一旦撥打電話
- 28. 當呼叫進入和用戶撥打號碼時需要關閉服務
- 29. 我想在android中撥打號碼嗎?
- 30. 獲取我撥打的號碼Android
一個想法隱藏或更換呼叫者ID將是使基於互聯網的呼叫,VOIP呼叫與操縱的ID。 – Skynet 2013-08-19 05:43:31