2016-07-30 39 views
0

我正在开发一个应用程序,其中安装后需求是隐藏应用程序图标。意味着应用程序图标将永远不会在主屏幕中显示任何位置。我将通过使用简码来启动应用程序。下面的代码隐藏应用程序ico。安装后隐藏应用程序图标

ComponentName componentToDisable = new ComponentName(context, Splash.class); 
    context.getPackageManager().setComponentEnabledSetting(componentToDisable,PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP); 

但我的问题是

我如何才能安装我的应用程序后拨打上面的代码行。

我将如何确定我的应用程序刚刚安装了

我已经加入下面播出menifest文件

<receiver android:name=".utilities.InstallApplicationReceiver" > 
     <intent-filter> 
      <action android:name="android.intent.action.PACKAGE_ADDED" /> 
     </intent-filter> 
    </receiver> 
下面

是我bradcast类

public class InstallApplicationReceiver extends BroadcastReceiver{ 

@Override 
public void onReceive(Context context, Intent intent) { 
    if (intent.getAction().equalsIgnoreCase("android.intent.action.PACKAGE_ADDED")) { 
     ComponentName componentToDisable = new ComponentName(context, Splash.class); 
     context.getPackageManager().setComponentEnabledSetting(componentToDisable, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 
    } 
} 

}

但仍然它不是隐藏应用程序图标:(

+0

有一个广播动作称为“ACTION_PACKAGE_ADDED”,这是可用的到应用程序[除了新添加的应用程序_](https://developer.android.com/reference/android/content/Intent.html#ACTION_PACKAGE_ADDED)。这意味着这很简单:用户将不得不运行你的应用程序_至少一次为你的代码删除应用程序图标。要么,要么做这两个答案的建议。 –

+0

从主屏幕或从应用程序抽屉隐藏图标? – dipali

+0

来自应用程序抽屉 –

回答

0

删除这个意图过滤从Splash活动的清单文件,你不会看到你的应用程序在家里scr EEN。

<intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
+0

通过使用上面的代码,我可以隐藏启动器图标,但应用程序不是通过使用密码打开。意味着我可以打开耳机应用程序通过dailing秘密代码.EX * * *#1223#*#* –

0

或者您可以尝试从您的应用的AndroidManifest.xml中删除此部分。

<intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 
+0

通过使用上面的代码,我可以隐藏启动器图标,但应用程序不是通过使用秘密代码打开。意味着我可以通过dailing秘密代码打开应用程序。 EX#*#1223#*# –

-1

//隐藏应用程序图标

PackageManager p = context.getPackageManager(); 
         ComponentName componentName = new ComponentName(this,SplashActivity.class); 
         p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 

接收机呼出,以便可以从拨号盘打开的应用程序:

public class CodeReceiver extends BroadcastReceiver 

{ 

    SharedPreferences preferences; 

    @Override 
    public void onReceive(Context context, final Intent intent) { 

     preferences=context.getSharedPreferences(Constant.PREF_NAME, context.MODE_PRIVATE); 



      if (intent.getAction().equals(android.content.Intent.ACTION_NEW_OUTGOING_CALL)){ 
       String phoneNumber=intent.getExtras().getString(android.content.Intent.EXTRA_PHONE_NUMBER); 

       if(phoneNumber.equals((Constant.PINCODE_).toString())) { 

        setResultData(null); 

        PackageManager p = context.getPackageManager(); 
        ComponentName componentName = new ComponentName("apppackage","apppackage.firstscreen"); 
        p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); 

        Intent i = new Intent(context, SplashActivity.class); 
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        context.startActivity(i); 

       } 
      } 


    } 
} 

清单:

<receiver 
      android:name=".classes.CodeReceiver" 
      android:exported="true"> 
      <intent-filter> 
       <action android:name="android.intent.action.PHONE_STATE" /> 
       <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 

     </receiver> 
+0

以上代码无法正常工作? – ViramP

+0

您可以使用以下方式: 要以编程方式隐藏启动程序的应用程序图标,您可以这样做 PackageManager packageManager = context.getPackageManager(); ComponentName componentName = new ComponentName(context, LauncherActivity.class); packageManager.setComponentEnabledSetting(componentName,PackageManager。COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 要通过按数字启动应用程序,请在mainfest文件中添加下列权限 ViramP

+0

这是一个糟糕的建议。该应用程序将不得不寻求一个完全不必要的/没有根据的隐藏应用程序图标的权限!应用程序绝对不应该要求它永远不会使用的权限。这只是不好的发展!此外,OP仅对隐藏该问题中的应用图标感兴趣。不是“_隐藏应用图标_后如何打开应用”。 –

相关问题