は、今私はただ、次のコードを使用しAndroidの表示/非表示アプリのアイコンをプログラム
答えて
、プログラムアイコンが表示されるようにしたいです。
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);
次回再起動するまでアイコンが表示されない場合があります。コードの下に使用して
を隠すアプリのアイコン:ここ
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);
は、アプリのアイコンを戻す方法です。
PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this, com.apps.MainActivity.class);
p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
とアイコンを再表示するには:
PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this, com.apps.MainActivity.class);
p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
重要: あなたが主な活動で何かをする必要がある場合には何とかトリッキーだこれを使用するアイコンを非表示にするに
PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this, com.apps.MainActivity.class);
p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
こんにちは、あなたのコードは完璧に動作していますが、する。アイコンを隠した後、ユーザーが#007のような特定の番号を呼び出した場合、このアプリを起動したいと思います。私は発信レシーバーを実装し、番号で一致している私は私の主な活動を開始しようとしているが、それは私にActivityNotFoundExceptionを与えている。あなたが何か考えてもらえれば助けてくれますか? – Scorpion
@Scorpionはいあなたの権利はあなたの活動を破壊し、その活動にアクセスすることはできません。そのためには別の方法を使用する必要があります。 – CoronaPintu
どうすればいいのですか?私は原因があります:java.lang.NullPointerException私のコードのstartActivity行に – Scorpion
あなたのアプリは隠されているとき。あなたはActivityNotFoundException
に直面します。それを機能させるには、あなたの主なアクティビティーに何かをする前にアイコンの表示を解除し、完了後に再び非表示にする必要があります。
簡単な手順: 1-コールはここで受信
2 - 再表示アイコン
3-打ち上げ主な活動はこちらから
主な活動にあなたの事を4-行う
5非表示アイコン再び
ダウンロードソースコード(Hide and Unhide the app icon in android programmatically)
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;
}
}
ありがとう!
- 1. アンドロイドで目覚ましアイコンをプログラムで表示/非表示
- 2. フュージョンテーブルレイヤーのアイコンを非表示
- 3. Androidでのアプリの非表示
- 4. Android:アプリケーションのアイコンを表示
- 5. androidの描画可能アイコンを使用してパスワードを表示/非表示
- 6. Androidのアクティビティバーの表示/非表示
- 7. Androidの表示/非表示断片は
- 8. Androidタブウィジェットの表示/非表示ボタンクリック
- 9. スイッチ断片(表示/非表示)のAndroid
- 10. Androidカスタムダイアログメニューの表示/非表示
- 11. 表示と非表示ボトムシートは、プログラム
- 12. AngularJS - グリフコン付きの矢印アイコンの表示と非表示
- 13. アプリのアイコンに赤いバッジを表示
- 14. Androidアプリの引き出しに表示/表示されるシステムアプリ(非UI)の非表示/削除/回避方法
- 15. Androidの行の下のアイコンを非表示にするには
- 16. プログラムでウオコマースプロダクトを非表示
- 17. プログラムでスピナーリストを非表示
- 18. Eclipseスカウトテーブルフィールドのネオン非表示設定アイコン
- 19. プログラムで非表示のアンドロイドサポートデザインを表示するAppBarLayout内のTabLayout
- 20. Androidボトムナビゲーション複数色のアイコンを表示
- 21. アプリのアイコンが表示されません(Androidスタジオ)
- 22. iOSアプリに外部アイコンを表示
- 23. ASP.NET:ラジオボタンのリストアイテムをプログラムで表示/非表示
- 24. 非表示のオプションを非表示IE
- 25. AndroidアプリにURLを表示
- 26. アンドロイド非表示アプリのアイコンは、プログラムだけでこのコードは動作し、私のアプリケーションアイコンを非表示に私のパッケージ名
- 27. の表示/非表示ベース
- 28. の表示/非表示DIV
- 29. ブートストラップモデルの表示/非表示
- 30. コンテンツの表示/非表示
私は既にそのコードを使用してアプリアイコンを隠していましたが、私はそのアプリアイコンが表示されたいと考えています – PankajAndroid
私の更新された回答を見てください。 –
更新された回答を参考にしてください。 –