2016-07-30 13 views
0

Ich entwickle eine Anwendung, in der die Anforderung ist, App-Symbol nach der Installation ausblenden.Means App-Symbol wird nie angezeigt, wo im Startbildschirm. Ich werde die App mit dem Shortcode starten. Unter dem Code zum Ausblenden von App ico.Ausblenden Anwendungssymbol nach der Installation

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

Aber meine Frage ist

, wie ich oben Codezeile aufrufen können nur nach der Installation meiner Anwendung.

Wie ich feststellen werde, dass meine Anwendung gerade installiert ist.

Ich habe unten Sendung in menifest Datei hinzugefügt

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

unten ist mein bradcast Klasse

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

}

aber immer noch seine nicht-Symbol versteckt App :(

+0

Es gibt eine Broadcast-Aktion namens "ACTION_PACKAGE_ADDED", die verfügbar ist zu Anwendungen [_except die neu hinzugefügte Anwendung_] (https://developer.android.com/reference/android/content/Intent.html#ACTION_PACKAGE_ADDED). Was das bedeutet, ist ganz einfach: Der Benutzer muss Ihre Anwendung mindestens einmal ausführen, damit Ihr Code das App-Symbol entfernt. Entweder das oder tue, was die beiden Antworten nahelegen. –

+0

Symbol vom Startbildschirm oder von der App-Schublade ausblenden? – dipali

+0

von App-Schublade –

Antwort

0

Remove Dieser Intent-Filter aus der Manifestdatei für die Splash-Aktivität. Ihre App wird nicht im Home-Scr angezeigt een.

+0

Mit dem obigen Code kann ich Launcher Symbol verbergen, aber Anwendung öffnet nicht mit geheimen code.Means earliar kann ich öffnen Anwendung durch die Angabe von securecode .EX * # * # 1223 # * # * –

0

Oder Sie können versuchen, dieses Teil aus AndroidManifest.xml Ihrer App zu entfernen.

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

Durch die Verwendung von oben genannten Code kann ich Launcher-Symbol verbergen, aber Anwendung öffnet nicht mit geheimen Code.Means earliar ich bin in der Lage, Anwendung zu öffnen, indem Sie Secretcode. EX # * # 1223 # * # –

-1

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

Empfänger für abgehende Verbindungen, so dass Sie App von Dialer-Pad öffnen:

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

über Code funktioniert nicht? – ViramP

+0

Sie können unten verwenden: Um App-Symbol aus Launcher programmatisch ausblenden, können Sie dies tun PackageManager packageManager = context.getPackageManager(); ComponentName componentName = neuer ComponentName (Kontext, LauncherActivity.class); packageManager.setComponentEnabledSetting (Komponentenname, PaketManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); Um App zu starten, indem Sie Zahl erste Erlaubnis in Mainfest Datei Folowing hinzufügen ViramP

+0

Das ist ein schlechter Vorschlag. Die Anwendung muss eine Erlaubnis suchen, die völlig unerwünscht/unberechtigt ist, um das App-Icon zu verstecken! Eine Anwendung sollte nie nach Berechtigungen fragen, die sie nie verwenden wird. Das ist nur eine schlechte Entwicklung! Außerdem ist das OP nur daran interessiert, das App-Icon in dieser Frage zu verstecken. Nicht "_wie öffne ich eine App, nachdem ich das App-Symbol ausgeblendet habe_". –

Verwandte Themen