从Android原生计算器获取结果

时间:2012-05-14 06:09:20

标签: android calculator

我从我的应用程序调用android本机计算器,我如何从中获取结果数据..意味着我开始这样的本机日历,在完成计算后我按回onActivityResult执行并返回的数据为null,如何得到计算数据..帮帮我

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);
 }       
}

1 个答案:

答案 0 :(得分:2)

经过一些测试后,我开始认为你无法从计算器中得到回报。使用startActivityForResult调用某些内容并不意味着它会返回除null之外的其他内容,并且由于除了按后退键之外无法退出计算器,我认为这是其中一种情况

原生计算器似乎没有调用setResult(RESULT_SUCESS,intent_with_data),这是能够检索此结果所需的步骤。我能想到的最简单的事情,因为你想要做一些计算就是实现你自己的计算器类并调用那个而不是原生计算器类。

计算器很容易制作,你在网上有很多例子。在将结果附加到意图后,请确保您有OK按钮调用setResult(RESULT_SUCESS, intent_with_data)

警告

请注意,您正在硬编码类名,而不是通过指定操作和URI来调用intent。这可能会调用仿真器上的原始计算器和Android的标准版本,但制造商会更改这些类型的东西,因为没有人应该按照您的意图调用它们,否则您最终可能会崩溃应用程序。