1

我正在从我的应用程序调用 android 本机计算器,我如何从中获取结果数据.. 意味着我像这样启动本机日历,完成计算后我按回 onActivityResult 被执行并且返回的数据为空,如何获取计算数据。 。 帮我

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,因为除了按后退键之外没有其他方法可以退出计算器,我认为这是其中一种情况。

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

计算器很容易制作,网上有无数的例子。只需确保您有一个按钮,在您将附加内容添加到结果的意图后OK即可调用。setResult(RESULT_SUCESS, intent_with_data)

警告

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

于 2012-05-14T06:18:01.833 回答