1

アクティビティからデバイスの標準の電卓を起動していますが、電卓を閉じると、電卓を起動したアクティビティに戻りません。特定の FLAG を設定する必要がありますか?

コード:

public void LaunchDeviceCalculator(){
        ArrayList<HashMap<String,Object>> packages =new ArrayList<HashMap<String,Object>>();
        final PackageManager pm = getPackageManager();
        List<PackageInfo> packs = pm.getInstalledPackages(0);  
        for (PackageInfo pi : packs) {
        if( pi.packageName.toString().toLowerCase().contains("calcul")){
            HashMap<String, Object> map = new HashMap<String, Object>();
            map.put("appName", pi.applicationInfo.loadLabel(pm));
            map.put("packageName", pi.packageName);
            packages.add(map);
    }
        }

        if(packages.size()>=1){
            String packageName = (String) packages.get(0).get("packageName");
            Intent i = pm.getLaunchIntentForPackage(packageName);

            if (i != null)
              startActivity(i);
            } 
}
4

2 に答える 2

1

価値のあるものとして、サードパーティの計算機がこの状況を処理します: http://www.efalk.org/RpnCalcFinancial/

開発者メモを検索します。

開発者は、アプリを起動するインテントと、返されるインテントとエクストラを一覧表示します。

私が覚えている限り、それは無料です。

RPN とも呼ばれる逆ポーランド記法を使用します。

于 2013-01-22T22:41:45.163 に答える
0

計算機の起動は、以下のコードで実行できます。詳細については、このリンクを確認してください: Android Intents For App Integration (電卓を呼び出す、ビデオを再生する、エディタを開く)

これはまだ試していませんが、コードは非常にシンプルで問題ないようです。これがうまくいくかどうか教えてください。

// activity name and package for stock calculator    
    private static final String CALCULATOR_PACKAGE_NAME = "com.android.calculator2";    
    private static final String CALCULATOR_CLASS_NAME = "com.android.calculator2.Calculator";
    public void launchCalculator() {   
         Intent intent = new Intent();   
         intent.setAction(Intent.ACTION_MAIN);   
         intent.addCategory(Intent.CATEGORY_LAUNCHER);  
         intent.setComponent(new Component Name(CALCULATOR_PACKAGE_NAME, CALCULATOR_CLASS_NAME));   
    try {   
         this.start Activity(intent); 
    } catch (ActivityNotFoundException noSuchActivity) {  
         // handle exception where calculator intent filter is not registered  
    }  
}
于 2013-07-09T11:31:51.147 に答える