1

我创建了一个应用程序,可以通过单击按钮来调用 sharedpreferencemenu 中指定的号码。这一切都完美无缺。

现在我的问题是:例如,当您的手机上有 voip 客户端或 Skype 并且您选择一个联系人或拨打一个号码时,您将可以选择要与之进行电话通话的那个。

但在我的应用程序中,它直接转到默认的 android 调用者。

这是我的代码:

SharedPreferences prefs;
    prefs = PreferenceManager.getDefaultSharedPreferences(this);
    final String callnumber = prefs.getString("call", "");
    callbutton = (Button) findViewById(R.id.callbutton);


 // Add PhoneStateListener
    PhoneCallListener phoneListener = new PhoneCallListener();
    TelephonyManager telephonyManager = (TelephonyManager) this
            .getSystemService(Context.TELEPHONY_SERVICE);
    telephonyManager.listen(phoneListener,
            PhoneStateListener.LISTEN_CALL_STATE);

    // Call Button Listener
callbutton.setOnClickListener(new View.OnClickListener() {

 @Override          
 public void onClick(View arg0) 
 {              
    String posted_by = callnumber;
    String uri = "tel:" + posted_by.trim() ;
    Intent intent = new Intent(Intent.ACTION_CALL);
    intent.setData(Uri.parse(uri));
    startActivity(intent);
  }
});}

所以我的最后一个问题是:当我在我的应用程序中单击呼叫按钮时,我是否有可能选择哪个应用程序应该执行呼叫?

4

1 回答 1

0

我从来没有做过这样的实现,但我认为你可以做到。也许如果您向您的应用程序添加一些IntentFilters以及 Android 启动其他应用程序的能力,您就可以实现您的目标。

下面的代码显示了您如何打开 Skype 应用程序并通过他的名字拨打给定/传递的联系人:

   Intent sky = new Intent("android.intent.action.VIEW");
   sky.setData(Uri.parse("skype:" + name));
   startActivity(sky);

我认为您可以实现类似的行为,打开您想要的应用程序,将所需/需要的参数传递给它。

我希望它能以某种方式帮助你!:)

于 2013-06-04T20:42:23.823 回答