Anwendungssymbol ausblenden

Ich mache eine Android-Anwendung. Ich möchte das Anwendungssymbol im Emulator ausblenden und ich möchte meine Anwendung starten, indem ich einige Nummern drückt, zum Beispiel 456 #. Gibt es einen Weg, dies zu tun?

  • Android: GoogleAuthUtil.getToken - wo soll das Kontoobjekt kommen?
  • Ausschluss von Assets für Release-Build-Typ
  • Wie bekomme ich die absoluten Koordinaten einer Ansicht
  • Wo finde ich den Google Play Services Attribution Text?
  • Android ArrayList <MyObject> passiere als Paket
  • Wie kann man die Breite eines mehrzeiligen Strings zuverlässig bestimmen?
  • Entfernen Sie die App aus den letzten Apps programmgesteuert
  • Android Emulator im ADT Plugin läuft nicht
  • Android SQLite: nullColumnHack Parameter in Einfügung / Ersetzen Methoden
  • Android-Studio funktioniert nicht auf Windows 7
  • Dex-Methode zählen nach Paket
  • Android: SQL rawQuery mit Platzhalter (%)
  • 5 Solutions collect form web for “Anwendungssymbol ausblenden”

    Um das App-Symbol aus dem Startprogramm auszuschalten, können Sie dies tun

    PackageManager packageManager = context.getPackageManager(); ComponentName componentName = new ComponentName(context, LauncherActivity.class); packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 

    Um die App zu starten, indem Sie zuerst drücken, fügen Sie die erlaubte Berechtigung in der Mainfest-Datei hinzu

      <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/> 

    Dann den Empfänger registrieren

     <receiver android:name=".LaunchAppViaDialReceiver"> <intent-filter> <action android:name="android.intent.action.NEW_OUTGOING_CALL"/> </intent-filter> </receiver> 

    Dann erstellen Sie eine Empfängerklasse

      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("12345")) { setResultData(null); Gaurdian.changeStealthMode(context, PackageManager.COMPONENT_ENABLED_STATE_ENABLED); Intent appIntent = new Intent(context, LauncherActivity.class); appIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(appIntent); } } 

    Wenn du das App-Icon verstecken willst, ist es eine gute Idee, das Icon zuerst zu zeigen und den Benutzer zu informieren, wie man die App startet, sobald das Icon verschwunden ist. Zuerst erstellen Sie einen Aktivitäts-Alias ​​im Manifest und verschieben Sie Ihren Intent-Filter dort. Auf diese Weise können Sie das Symbol deaktivieren, ohne die Aktivität zu deaktivieren.

     <activity android:name=".MainActivity" android:label="@string/app_name" > </activity> <activity-alias android:name=".Launcher" android:targetActivity=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity-alias> 

    Holen Sie sich den Komponentennamen des Launcher-Alias ​​mit Ihrem Paketnamen:

     private static final ComponentName LAUNCHER_COMPONENT_NAME = new ComponentName( "your.package.name", "your.package.name.Launcher"); 

    Sie können überprüfen, ob es schon deaktiviert ist …

     private boolean isLauncherIconVisible() { int enabledSetting = getPackageManager() .getComponentEnabledSetting(LAUNCHER_COMPONENT_NAME); return enabledSetting != PackageManager.COMPONENT_ENABLED_STATE_DISABLED; } 

    … und deaktivieren Sie es nach Angabe der Benutzerinformationen:

     private void hideLauncherIcon() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Important!"); builder.setMessage("To launch the app again, dial phone number 12345."); builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { getPackageManager().setComponentEnabledSetting(LAUNCHER_COMPONENT_NAME, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); } }); builder.setIcon(android.R.drawable.ic_dialog_alert); builder.show(); } 

    Um vom Dialer zu starten, erstellen Sie einen Broadcast-Empfänger:

     public class LaunchViaDialReceiver extends BroadcastReceiver { private static final String LAUNCHER_NUMBER = "12345"; @Override public void onReceive(Context context, Intent intent) { String phoneNubmer = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); if (LAUNCHER_NUMBER.equals(phoneNubmer)) { setResultData(null); Intent appIntent = new Intent(context, MainActivity.class); appIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(appIntent); } } } 

    Füge es dem Manifest hinzu:

     <receiver android:name=".LaunchViaDialReceiver" > <intent-filter> <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> </intent-filter> </receiver> 

    Und füge die Erlaubnis zum Manifest hinzu:

     <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" /> 

    Die Antwort auf den ersten Teil Ihrer Frage, versuchen Sie diesen Code:

     PackageManager pm = getApplicationContext().getPackageManager(); pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 

    Ihre Anwendung ist nicht sichtbar, aber der Benutzer kann sie immer noch in den Einstellungen >> Anwendungen >> Anwendung verwalten finden

    Diese Antwort kann auch für Sie hilfreich sein.

    Bitte vergessen Sie nicht, Ihre Antwort hier zu posten, wenn Sie bereits die Funktionalität erreicht haben (einige Nummern drücken und unsere Bewerbung öffnen).

    Beachten Sie, dass die Lösung:

     PackageManager pm = getApplicationContext().getPackageManager(); pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 

    Wird die App nicht aktualisierbar von Google Play, da das Betriebssystem das Paket nicht finden wird, nachdem diese Komponente deaktiviert wurde und es nicht möglich ist, es neu zu installieren, es sei denn, die App ist nicht manullay deinstalliert (was kein benutzerfreundliches Verhalten ist)

     public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); hideapplication(); } private void hideapplication() { // TODO Auto-generated method stub PackageManager pm = getApplicationContext().getPackageManager(); pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); } } 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.