2011-08-03 26 views
3

私がしようとしているのは、ToddlerLockアプリケーションの機能を再現することです。私は、ユーザーがホームキー「このアクションのデフォルトで使用」チェックしている限り、このclearPackagePreferredActivities( "com.android.launcher")を元に戻すにはどうすればいいですか?

Intent i = new Intent(); 
i.setAction(Intent.ACTION_MAIN); 
i.addCategory(Intent.CATEGORY_HOME); 
this.startActivity(i); 

で打ち上げ選択ダイアログを

PackageManager localPackageManager = getPackageManager(); 
localPackageManager.clearPackagePreferredActivities("com.android.launcher"); 

でデフォルトのランチャーをクリアしてから開くように管理しています今は私のアプリにユーザーを送ります。したがって、本質的に無効にします。
私は私のアプリを終了すると、ユーザーが新しいデフォルトのホームアプリを選択する必要があります "clearPackagePreferredActivities(" com.my_application ")"を使用します。

私の質問は、 "com.android.launcher"パッケージのコードで "このアクションにデフォルトで使用する"チェックボックスをチェックして、デフォルトのホームアプリケーションを選択する方法です。そのダイアログボックスに彼らが開くたびに見ると、私のアプリを閉じます。

を私はアプリケーションマネージャで「明確なデフォルト」を見れば、それがクリアされていないためToddlerLockがclearPackagePreferredActivities を使用せずに何とかこれを行いだと思うし、あなたが唯一持っています起動時に一度デフォルトのダイアログボックスとして設定を終了し、終了して通常のホーム画面に戻す場合は一度戻ってください。

Tあなたの助けにハンクス。

答えて

5

私は別の方法で同じ機能を実装しました。

  • 「LockScreenAcitivity」がマニフェストのホーム画面として設定されているとします。
  • Home Intentを送信してLockScreenActivityを起動します。
  • Androidのアクティビティドン」を閉じている間
  • .....
  • .....デフォルトの活動
  • として一覧からあなたLockScreenActivityを選択し、デフォルトAcitivity
  • を選択し、ダイアログボックスをポップアップします優先アクティビティをクリアします。
  • PackageManager.setComponentEnabledSetting()を呼び出すことで、LockScreenActivityだけを無効にします。
  • LockScreenActivityを無効にすると、アンドロイドは以前の優先動作(元のホーム画面)にロールバックします。あなたのアプリを起動

次回は、

  • はホームテント送信することにより、PackageManager.setComponentEnabledSetting()
  • 起動LockScreenActivityを呼び出すことによって、もう一度lockscreenActivityを有効にします。
+0

これは、廃止された関数addPreferredActivityを使用せずに私にとって役に立ちました。ありがとう! –

+0

よく出来たPalani。 – drc

関連する問題