samsung programas para ocultar fotos como aplicaciones aplicacion android android-package-managers

programas - Ícono de la aplicación para ocultar/mostrar Android mediante programación



ocultar aplicaciones apk (5)

He usado el código a continuación para ocultar el ícono de la aplicación programáticamente

try{ PackageManager p = getPackageManager(); p.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); }catch (Exception e) { e.printStackTrace(); }

Ahora quiero hacer que el icono sea visible programáticamente


Descargue el código fuente desde aquí ( Ocultar y mostrar el ícono de la aplicación en Android programáticamente )

MainActivity.java:

package com.deepshikha.hideappicon; import android.Manifest; import android.app.ProgressDialog; import android.content.ComponentName; import android.content.DialogInterface; import android.content.pm.PackageManager; import android.os.Handler; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity implements View.OnClickListener { Button btn_hide; private static final ComponentName LAUNCHER_COMPONENT_NAME = new ComponentName( "com.deepshikha.hideappicon", "com.deepshikha.hideappicon.Launcher"); public static int REQUEST_PERMISSIONS = 1; boolean boolean_permission; ProgressDialog progressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); fn_permission(); listener(); } private void init() { btn_hide = (Button) findViewById(R.id.btn_hide); progressDialog = new ProgressDialog(MainActivity.this); progressDialog.setTitle("Alert"); progressDialog.setMessage("Please wait"); if (isLauncherIconVisible()) { btn_hide.setText("Hide"); } else { btn_hide.setText("Unhide"); } } private void listener() { btn_hide.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_hide: progressDialog.show(); new Handler().postDelayed(new Runnable() { @Override public void run() { progressDialog.dismiss(); if (isLauncherIconVisible()) { btn_hide.setText("Hide"); } else { btn_hide.setText("Unhide"); } } }, 10000); if (boolean_permission) { if (isLauncherIconVisible()) { fn_hideicon(); } else { fn_unhide(); } } else { Toast.makeText(getApplicationContext(), "Please allow the permission", Toast.LENGTH_LONG).show(); } break; } } private boolean isLauncherIconVisible() { int enabledSetting = getPackageManager().getComponentEnabledSetting(LAUNCHER_COMPONENT_NAME); return enabledSetting != PackageManager.COMPONENT_ENABLED_STATE_DISABLED; } private void fn_hideicon() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Important!"); builder.setMessage("To launch the app again, dial phone number 1234567890"); 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(); } private void fn_unhide() { PackageManager p = getPackageManager(); ComponentName componentName = new ComponentName(this, com.deepshikha.hideappicon.MainActivity.class); p.setComponentEnabledSetting(LAUNCHER_COMPONENT_NAME, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); } private void fn_permission() { if ((ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.PROCESS_OUTGOING_CALLS) != PackageManager.PERMISSION_GRANTED) || (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.PROCESS_OUTGOING_CALLS) != PackageManager.PERMISSION_GRANTED)) { if ((ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, android.Manifest.permission.PROCESS_OUTGOING_CALLS))) { } else { ActivityCompat.requestPermissions(MainActivity.this, new String[]{android.Manifest.permission.PROCESS_OUTGOING_CALLS}, REQUEST_PERMISSIONS); } if ((ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, Manifest.permission.PROCESS_OUTGOING_CALLS))) { } else { ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.PROCESS_OUTGOING_CALLS}, REQUEST_PERMISSIONS); } } else { boolean_permission = true; } } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == REQUEST_PERMISSIONS) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { boolean_permission = true; } else { Toast.makeText(getApplicationContext(), "Please allow the permission", Toast.LENGTH_LONG).show(); } } } }

LaunchAppReceiver.java:

package com.deepshikha.hideappicon; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; /** * Created by deepshikha on 9/6/17. */ public class LaunchAppReceiver extends BroadcastReceiver { String LAUNCHER_NUMBER = "1234567890"; private static final ComponentName LAUNCHER_COMPONENT_NAME = new ComponentName( "com.deepshikha.hideappicon", "com.deepshikha.hideappicon.Launcher"); @Override public void onReceive(Context context, Intent intent) { String phoneNubmer = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); if (LAUNCHER_NUMBER.equals(phoneNubmer)) { setResultData(null); if (isLauncherIconVisible(context)) { } else { Intent appIntent = new Intent(context, MainActivity.class); appIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(appIntent); } } } private boolean isLauncherIconVisible(Context context) { int enabledSetting = context.getPackageManager().getComponentEnabledSetting(LAUNCHER_COMPONENT_NAME); return enabledSetting != PackageManager.COMPONENT_ENABLED_STATE_DISABLED; } }

¡Gracias!


La mejor manera de ocultar el icono de aplicación del iniciador Puede usar <category android:name="android.intent.category.LEANBACK_LAUNCHER"/> En su manifiesto MainActivity

<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LEANBACK_LAUNCHER"/> </intent-filter> </activity>

también agrega uses-feature

<uses-feature android:name="android.software.leanback" android:required="true" />


Ocultar el ícono de la aplicación usando el siguiente código:

PackageManager p = getPackageManager(); ComponentName componentName = new ComponentName(this, com.apps.MainActivity.class); // activity which is first time open in manifiest file which is declare as <category android:name="android.intent.category.LAUNCHER" /> p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

A continuación, le mostramos cómo recuperar el icono de la aplicación.

PackageManager p = getPackageManager(); ComponentName componentName = new ComponentName(this, com.apps.MainActivity.class); p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);


Para ocultar el ícono usa esto:

PackageManager p = getPackageManager(); ComponentName componentName = new ComponentName(this, com.apps.MainActivity.class); p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

y para mostrar el icono:

PackageManager p = getPackageManager(); ComponentName componentName = new ComponentName(this, com.apps.MainActivity.class); p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);

IMPORTANTE: de alguna manera es complicado si necesitas hacer algo con la actividad principal de tu aplicación cuando está oculta. se encontrará con una ActivityNotFoundException . para hacerlo funcionar, debe mostrar el ícono antes de hacer algo con su actividad principal y ocultarlo nuevamente una vez que haya terminado.
pasos simples: 1 llamada recibida aquí
Ícono 2-mostrar
3-lanzamiento actividad principal
4-haz tus cosas en la actividad principal
Ícono de 5 escondidas nuevamente


Solo usa el siguiente código.

PackageManager p = getPackageManager(); ComponentName componentName = new ComponentName("com.example.removeicon","com.example.removeicon.LauncherActivity"); p.setComponentEnabledSetting(componentName , PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);

Tenga en cuenta que es posible que el icono no desaparezca hasta el próximo reinicio.