我的最终项目要求必须隐藏应用程序,并且除非在电话拨号器中输入一些代码(例如:* 123#),否则永远不会再打开它可以帮助我们完成这项任务吗?
答案 0 :(得分:0)
这有点棘手,它有起伏,但你需要做的基本上是:
PROCESS_OUTGOING_CALLS
意图过滤器中注册了BroadcastReceiver(不要忘记设置uses-permissions
)。以编程方式禁用图标使用:
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()
该活动,以便在首次运行时自动关闭。
P.S我有一个这方面的工作样本,所以请放心,因为我已经测试过它确实有效,遗憾的是我无法用勺子喂你最后的项目。不要犹豫,问什么。祝你好运
答案 1 :(得分:-1)
Android中没有此类功能。您可以使用自定义主屏幕进行此操作,但没有"隐藏此应用程序"默认启动器中的功能。