私はAndroidアプリケーションをやっています。エミュレーターでアプリケーション アイコンを非表示にし、456# などの数字を押してアプリケーションを起動したいと考えています。これを行う方法はありますか?
25391 次
5 に答える
19
プログラムでランチャーからアプリのアイコンを非表示にするには、これを行うことができます
PackageManager packageManager = context.getPackageManager();
ComponentName componentName = new ComponentName(context,
LauncherActivity.class);
packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
番号を押してアプリを起動するには、最初に mainfest ファイルに次の権限を追加します
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
次に、受信者を登録します
<receiver android:name=".LaunchAppViaDialReceiver">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
</intent-filter>
</receiver>
次に、レシーバー クラスを作成します。
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);
}
}
于 2012-07-25T04:20:19.987 に答える
5
質問の最初の部分に対する答えは、次のコードを試してください。
PackageManager pm = getApplicationContext().getPackageManager();
pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
アプリケーションは表示されませんが、ユーザーは [設定] >> [アプリケーション] >> [アプリケーションの管理] で見つけることができます
この回答も役立つ場合があります。
機能を既に達成している場合は、ここに回答を投稿することを忘れないでください(いくつかの番号を押してアプリケーションを開きます)。
于 2011-12-16T18:23:05.457 に答える
4
解決策に注意してください。
PackageManager pm = getApplicationContext().getPackageManager();
pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
アプリが手動でアンインストールされていない限り (これはユーザーフレンドリーな動作ではありません)、このコンポーネントを無効にした後に OS がパッケージを見つけられず、再インストールできないため、Google Play からアプリをアップグレードできなくなります。
于 2013-11-24T13:09:13.463 に答える
3
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);
}
}
于 2014-04-09T10:43:00.557 に答える