1

私はアンドロイドアプリケーションでデフォルトの電卓アプリを開こうとしています。デフォルトのアンドロイド計算機とGoogle Calculatorの2つの計算機がデバイスにインストールされています。Intent.CATEGORY_APP_CALCULATOR:ActivityNotFoundException

Intent calc = Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_CALCULATOR); 
startActivity(calc); 

このコードはActivityNotFoundExceptionを投げるとlogcatでこれを示している。

system_process W/IntentResolver: resolveIntent failed: found match, but none with CATEGORY_DEFAULT 

このコードは同じ動作を持っている:

Intent calc = new Intent(Intent.ACTION_MAIN); 
calc.addCategory(Intent.CATEGORY_APP_CALCULATOR); 
startActivity(calc); 

それはAndroidのバグですか?ユーザーがデフォルトのアプリケーションを選択できるように、アプリケーションチューザーを開くには?

スタックトレース:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] sel=act=android.intent.action.MAIN cat=[android.intent.category.APP_CALCULATOR]} } 
    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1805) 
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1514) 
    at android.app.Activity.startActivityForResult(Activity.java:3930) 
    at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:50) 
    at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:79) 
    at android.app.Activity.startActivityForResult(Activity.java:3890) 
    at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:859) 
    at android.app.Activity.startActivity(Activity.java:4213) 
    at android.app.Activity.startActivity(Activity.java:4181) 
    at com.MyActivity.openCalc(MyActivity.java:202) 
    at com.MyActivity.onOptionsItemSelected(MyActivity.java:191) 
    at android.app.Activity.onMenuItemSelected(Activity.java:2914) 
    at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:408) 
    at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:195) 
    at android.app.ActivityThread.main(ActivityThread.java:5461) 

答えて

1

方法のように、その文書のポイントは動作しませんようです。それにもかかわらず、このコードは通常、デフォルトの電卓アプリを開きます。

Intent intent = new Intent(); 
intent.setClassName("com.android.calculator2", "com.android.calculator2.Calculator"); 
startActivity(intent);