2012-08-03 48 views
0

我有一個需要隱藏的Android應用程序,只有當用戶撥打特定號碼時纔會出現。我能否確切知道它是如何完成的?我已經搜索,沒有成功。提前致謝。如何創建像應用程序的幽靈模式?

+0

這已經被問過:http://stackoverflow.com/questions/10860369/fetch-dial-number-while-calling。 – wojciii 2012-08-03 11:53:17

+0

好的我可以隱藏應用程序,然後通過撥號盤啓動它,但是啓動它後,圖標再次顯示。 – 2012-08-06 09:31:20

回答

1

爲了從發射完全隱藏的應用程序,你需要首先創建一個BroadcastReciever:

public class LaunchAppViaDialReceiver extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 
    Bundle bundle = intent.getExtras(); 
    if (null == bundle) 
     return; 
    String phoneNubmer = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); 
    //here change the number to your desired number 
    if (phoneNubmer.equals("<Requested Number>")) { 
     setResultData(null); 
     if(status == true){ 
      PackageManager packageManager = context.getPackageManager(); 
      ComponentName componentName = new ComponentName(context, 
        YourLauncherActivity.class); 
      packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 
        PackageManager.DONT_KILL_APP); 
      Intent appIntent = new Intent(context, YourLauncherActivity.class); 
      appIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(appIntent); 
     } 
    } 
} 

並添加權限:android.permission.PROCESS_OUTGOING_CALLS 添加BroadcastReciever清單文件。

最好是使用戶通過設置偏好幽靈模式