1

アプリから Android ネイティブ電卓を呼び出しています。結果データを取得するにはどうすればよいですか。つまり、このようにネイティブ カレンダーを開始したことを意味します。 。 助けて

Intent i = new Intent();
i.setClassName("com.android.calculator2",
            "com.android.calculator2.Calculator");
startActivityForResult(i, 1); 

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data); 
if(requestCode == 1){
    Log.i("CALCULATOR", "Result Data is"+ data);
 }       
}
4

1 に答える 1

2

いくつかのテストの後、電卓から何かを実際に取得することはできないと思い始めています。で何かを呼び出しても、startActivityForResultそれ以外のものが返されるわけではなくnull、戻るキーを押す以外に電卓から出る方法がないため、これはそのようなケースの1つであると思います。

setResult(RESULT_SUCESS,intent_with_data)ネイティブの計算機は、この結果を取得できるようにするために必要な手順である呼び出しを行っていないようです。考えられる最も簡単な方法は、計算を行いたいので、独自の電卓クラスを実装し、ネイティブの代わりにそれを呼び出すことです。

電卓は簡単に作成でき、ネット上には無数の例があります。結果のインテントにエクストラを配置した後にOK呼び出すボタンがあることを確認してください。setResult(RESULT_SUCESS, intent_with_data)

警告

アクションと URI を指定してインテントを呼び出すのではなく、クラス名をハードコーディングしていることに注意してください。これは、Android のエミュレーターおよび標準バージョンで元の電卓を呼び出す可能性がありますが、メーカーはそのようなものを変更し、意図したとおりに呼び出すことは想定されていないため、アプリをクラッシュさせる可能性があります。

于 2012-05-14T06:18:01.833 に答える