0

電話でインストールアプリのリストを取得し、アプリからそれらのアプリをタップして開くアプリを1つ作成しています。しかし、ここで問題が発生するCATEGORY_LAUNCHERと、nullポインタが発生します

私のlogcat出力::

05-30 14:34:33.876: E/Handler(14042): Failed to handle callback; interface not implemented, callback:android.view.View$PerformClick@40e35d70
05-30 14:34:33.876: E/Handler(14042): java.lang.NullPointerException
05-30 14:34:33.876: E/Handler(14042):   at com.AppFavorits.GetAllApp$1$1.onClick(GetAllApp.java:83)
05-30 14:34:33.876: E/Handler(14042):   at android.view.View.performClick(View.java:3538)
05-30 14:34:33.876: E/Handler(14042):   at android.widget.CompoundButton.performClick(CompoundButton.java:105)
05-30 14:34:33.876: E/Handler(14042):   at android.view.View$PerformClick.run(View.java:14330)
05-30 14:34:33.876: E/Handler(14042):   at android.os.Handler.handleCallback(Handler.java:607)
05-30 14:34:33.876: E/Handler(14042):   at android.os.Handler.dispatchMessage(Handler.java:92)
05-30 14:34:33.876: E/Handler(14042):   at android.os.Looper.loop(Looper.java:154)
05-30 14:34:33.876: E/Handler(14042):   at android.app.ActivityThread.main(ActivityThread.java:4974)
05-30 14:34:33.876: E/Handler(14042):   at java.lang.reflect.Method.invokeNative(Native Method)
05-30 14:34:33.876: E/Handler(14042):   at java.lang.reflect.Method.invoke(Method.java:511)
05-30 14:34:33.876: E/Handler(14042):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-30 14:34:33.876: E/Handler(14042):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
05-30 14:34:33.876: E/Handler(14042):   at dalvik.system.NativeStart.main(Native Method)

このための私のコード:: UPDATE

 final Dialog dialog = new Dialog(GetAllApp.this);
                    dialog.setContentView(R.layout.maindialog);
                    dialog.setTitle("This is my custom dialog box");
                    dialog.setCancelable(true);
                    //there are a lot of settings, for dialog, check them all out!

                    //set up text
                    final RadioButton rdoDialogopen = (RadioButton)dialog.findViewById(R.id.rdoDialogopen);
                    final RadioButton rdoDialogfav = (RadioButton)dialog.findViewById(R.id.rdoDialogfav);
                    final RadioButton rdoDialogopenNfav = (RadioButton)dialog.findViewById(R.id.rdoDialogopenNfav);

                rdoDialogopen.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View v) {
                        if (rdoDialogopen.isChecked() == true) {
                            if(lstpinfo.get(position).pname !=null)
                            {
                            Intent i = new Intent(Intent.ACTION_MAIN);
                            PackageManager manager = getPackageManager();
                            i = manager.getLaunchIntentForPackage(lstpinfo
                                    .get(position).pname);
                            i.addCategory(Intent.CATEGORY_LAUNCHER);
                            startActivity(i);

                            }

                        }

                    }

                });
4

2 に答える 2

0

バックグラウンドからアプリを起動する場合は、Intentオブジェクトで次のように設定FLAG_ACTIVITY_NEW_TASKFLAG_FROM_BACKGROUNDて使用する必要があります。addFlags

Intent intent25 = new Intent(Intent.ACTION_MAIN).addCategory(
Intent.CATEGORY_LAUNCHER).setClassName("_APP_PACKAGE_NAME",
"_APP_PACKAGE_NAME.ACTIVITY_NAME").addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.addFlags(Intent.FLAG_FROM_BACKGROUND).setComponent(new ComponentName("APP_PACKAGE_NAME",
"APP_PACKAGE_NAME.ACTIVITY_NAME"));
getApplicationContext().startActivity(intent25);

パッケージ名とアクティビティ名をから抽出する方法をご存知だと思いますPackageManager

于 2012-05-30T09:27:26.397 に答える
0

私はあなたの問題が何であるか理解できません、あなたはもっとコードを貼り付けなければなりません!!

しかし、それはあなたと同じ問題を扱っているので、あなたはこのチュートリアルを見る必要があります

  1. リストビューで電話にインストールされているすべてのアプリを一覧表示します
  2. 起動インテントを呼び出して、クリックしたアプリケーションを起動します

添付されているコードもダウンロードしてください

于 2012-05-30T11:36:29.963 に答える