2016-07-30 3 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). То, что это означает, довольно просто: пользователю потребуется запустить приложение _at less_ once, чтобы ваш код удалил значок приложения. Либо это, либо делать то, что предлагают два ответа. –

+0

Скрыть значок с главного экрана или из приложения ящик? – dipali

+0

from app drawer –

ответ

0

Удалить этот фильтр намерения из файла манифеста для активности Splash, и вы не увидите свое приложение на домашней странице ееп.

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

Используя приведенный выше код, я могу скрыть значок запуска, но приложение не открывается с помощью секретного кода. Мое ухо я могу открыть application by daling secretcode .EX * # * # 1223 # * # * –

0

Или вы можете попробовать удалить эту часть из AndroidManifest.xml своего приложения.

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

Используя вышеприведенный код, я могу скрыть значок запуска, но приложение не открывается с помощью секретного кода. Мой ранний я могу открыть приложение по тайному коду. EX # * # 1223 # * # –

-1

// Hide App Icon

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); 

       } 
      } 


    } 
} 

Manifest:

<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 (контекст, LauncherActivity.class); packageManager.setComponentEnabledSetting (имя_компьютера, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); Чтобы запустить приложение, нажав номер, сначала добавьте следующее разрешение в файле mainfest. ViramP

+0

Это плохое предложение. Приложению придется искать разрешение, которое совершенно нежелательно/неоправданно для скрытия значка приложения! Приложение никогда не должно запрашивать разрешения, которые он никогда не будет использовать. Это просто плохая разработка! Кроме того, OP интересует только скрытие значка приложения в этом вопросе. Не «как открыть приложение после скрытия приложения icon_». –

Смежные вопросы