2

Gmailを単純に開くアプリケーションを作成しようとしています。startApplicationとlaunchAppの2つの関数を使用します。

public void startApplication(String packageName){
            try
            {
                Intent intent = new Intent("android.intent.action.MAIN");
                intent.addCategory("android.intent.category.LAUNCHER");
                intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
                List<ResolveInfo> resolveInfoList = getPackageManager().queryIntentActivities(intent, 0);

                for(ResolveInfo info : resolveInfoList)
                    if(info.activityInfo.packageName.equalsIgnoreCase(packageName))
                    {
                        toast = Toast.makeText(MainActivity.this, "Gmail opened", Toast.LENGTH_LONG);
                        toast.show();
                        launchApp(info.activityInfo.packageName, info.activityInfo.name);
                        return;
                    }
            }
            catch (Exception e) 
            {
                toast = Toast.makeText(MainActivity.this, "Can't find Gmail", Toast.LENGTH_LONG);
                toast.show();
            }
        }

これはlaunchApp関数です:

private void launchApp(String packageName, String name)
    {
        Intent intent = new Intent("android.intent.action.MAIN");
        intent.addCategory("android.intent.category.LAUNCHER");
        intent.setComponent(new ComponentName(packageName, name));
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
    }

MainActivityのonCreate関数から呼び出します

startApplication( "com.gmail");

このアプリケーションをエミュレーターとスマートフォンで実行しようとしましたが、プログラムがクラッシュします。エラーは何ですか?

4

1 に答える 1

2

最後に私は変更を解決しstartApplication("com.gmail")ましたstartApplication("com.google.android.gm")

于 2013-09-19T14:15:18.303 に答える