2012-08-03 57 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清单文件。

最好是使用户通过设置偏好幽灵模式