0

私が苦労している2つの問題があるようです。最初のケースは、時計アプリを起動して完全に動作する場合です。これは、ほとんどのアプリを起動する場合に当てはまるようです。

2 番目のケースは、Phone アクティビティなどのアクティビティを起動しようとしたときです。Intent を取得しようとすると、getLaunchIntentForPackage(app.pname) が null を返します。この場合に起動できるように、電話アクティビティのインテントを取得する別の方法はありますか?

3 つ目のケースは、カメラ アクティビティなどのアクティビティを開始するときです。カメラ アクティビティを起動するには、androidManifest.xml ファイル内に既にカメラ アクティビティを含める必要があるようですが、これを回避する別の方法はありますか? 私のアプリには、その UI から任意のアプリを起動する機能があるため、Android デバイスのすべてのアクティビティを事前にマニフェスト ファイルに追加することはできません。ありがとうございました!

ジャワ:

        Intent launchApp = getPackageManager().getLaunchIntentForPackage(app.pname);

            System.out.println(Intent of " + appName + ": + " " +launchApp);

            if(launchApp!=null){
                System.out.println("Permission granted to launch " + appName);
                startActivity( launchApp );
            }

            else{

                System.out.println("Permission not granted to launch " + appName);
            }

ログキャット:

        08-07 09:38:57.031: I/System.out(1056): Intent of Clock: Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=com.htc.android.worldclock/.WorldClockTabControl }
        08-07 09:38:57.041: I/System.out(1056): Permission granted to launch Clock
        08-07 09:38:59.783: I/System.out(1056): Intent of Phone: null
        08-07 09:38:59.783: I/System.out(1056): Permission not granted to launch Phone
        08-07 09:39:10.564: I/System.out(1056): Intent of Camera: Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=com.android.camera/com.android.internal.app.ResolverActivity }
        08-07 09:39:10.574: I/System.out(1056): Permission granted to launch Camera
        08-07 09:39:10.574: D/AndroidRuntime(1056): Shutting down VM
        08-07 09:39:10.574: W/dalvikvm(1056): threadid=1: thread exiting with uncaught exception (group=0x4001d5a0)
        08-07 09:39:10.614: E/AndroidRuntime(1056): FATAL EXCEPTION: main
        08-07 09:39:10.614: E/AndroidRuntime(1056): java.lang.IllegalStateException: Could not execute method of the activity
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at android.view.View$1.onClick(View.java:2191)
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at android.view.View.performClick(View.java:2532)
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at android.view.View$PerformClick.run(View.java:9293)
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at android.os.Handler.handleCallback(Handler.java:587)
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at android.os.Handler.dispatchMessage(Handler.java:92)
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at android.os.Looper.loop(Looper.java:150)
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at android.app.ActivityThread.main(ActivityThread.java:4306)
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at java.lang.reflect.Method.invokeNative(Native Method)
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at java.lang.reflect.Method.invoke(Method.java:507)
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at dalvik.system.NativeStart.main(Native Method)
        08-07 09:39:10.614: E/AndroidRuntime(1056): Caused by: java.lang.reflect.InvocationTargetException
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at          java.lang.reflect.Method.invokeNative(Native Method)
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at java.lang.reflect.Method.invoke(Method.java:507)
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at android.view.View$1.onClick(View.java:2186)
        08-07 09:39:10.614: E/AndroidRuntime(1056):     ... 11 more
        08-07 09:39:10.614: E/AndroidRuntime(1056): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.camera/com.android.internal.app.ResolverActivity}; have you declared this activity in your AndroidManifest.xml?
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1565)
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1539)
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at android.app.Activity.startActivityForResult(Activity.java:2919)
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at android.app.Activity.startActivity(Activity.java:3025)
        08-07 09:39:10.614: E/AndroidRuntime(1056):     at com.worklight.androidnativeapp.AndroidNativeApp.appClicked(AndroidNativeApp.java:284)
        08-07 09:39:10.614: E/AndroidRuntime(1056):     ... 14 more
4

1 に答える 1

1

カメラの起動方法

ダイヤラの起動方法

特定のアプリを起動するには、パッケージ名とクラス名を知る必要があります

try{
    Intent i = new Intent();
    i.setClassName("com.example.app", "com.example.app.MainActivity");
    i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    startActivity(e);
}catch(ActivityNotFoundException e){
    e.printStackTrace();
}
于 2013-08-07T14:07:55.720 に答える