簡體   English   中英

如何從電話撥號器中調出隱藏的應用程序?

[英]how can i recall a hidden app from phone dialer?

我的最終項目要求必須隱藏該應用程序,除非在電話撥號器中輸入一些代碼(例如:*123#),否則永遠不要再打開它,你能幫我完成這項任務嗎?

這有點棘手,它有起有落,但您需要做的基本上是:

  1. 在應用安裝時,您需要以編程方式禁用應用圖標,這樣您就無法手動打開它。
  2. 將 BroadcastReceiver 注冊到PROCESS_OUTGOING_CALLS意圖過濾器(不要忘記設置uses-permissions )。
  3. 在接收器中,收聽每個撥打的號碼,當它與您的號碼匹配時,您需要再次激活應用程序圖標,然后您可能會使用額外的數據開始活動以供稍后處理。
  4. 處理完活動中的數據后,請記住再次停用該圖標

要以編程方式禁用圖標,請使用:

PackageManager packageManager = getPackageManager();
            ComponentName componentName = new ComponentName(this, MainActivity.class);
            packageManager.setComponentEnabledSetting(
                    componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP
            );

要啟用它:

 PackageManager packageManager = context.getPackageManager();
                ComponentName componentName = new ComponentName(context, MainActivity.class);
                packageManager.setComponentEnabledSetting(
                        componentName,PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP
                );

在您的接收器中獲取您需要使用的撥號號碼:

if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
     String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);

     // Validate and start your activity here
     // To start an activity from a receiver you need to use the flag FLAG_ACTIVITY_NEW_TASK in your intent
}

注意:以編程方式隱藏圖標后,您可能希望finish()活動,以便在第一次運行時自動關閉。

PS我有一個工作樣本,所以請放心,因為我已經測試過它確實有效,遺憾的是我不能在你的最終項目中用勺子喂你。 不要猶豫,問任何事情。 祝你好運

Android 中沒有這樣的功能。 您也許可以使用自定義主屏幕來執行此操作,但默認啟動器中沒有“隱藏此應用程序”功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM