2013-06-04 3 views
1

У меня небольшая проблема. Я создал приложение, которое может вызвать номер, указанный в sharedpreferencemenu, одним нажатием кнопки. Все это прекрасно работает.Возможность для клиента voip с намерением Action.Call в android

Теперь мой вопрос: Например, если у вас есть клиент voip или skype на вашем телефоне, и вы выбираете контакт или набираете номер, вы получите выбор, с которым вы хотите выполнить телефонный звонок.

Но в моем приложении он идет прямо к вызывающему абоненту по умолчанию.

это мой код:

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

Так что мой последний вопрос: Возможно ли, что, когда я нажимаю на кнопку вызова в моем приложении я получите приложение Wich выбора должен выполнить вызов?

Спасибо уважением, Tim

ответ

0

Я никогда не делал такое осуществление, но я думаю, что вы можете сделать это. Возможно, если вы добавите к своему приложению около IntentFilters в сочетании с возможностью Android запускать другие приложения, вы можете достичь своей цели.

Это ниже код показывает, как открыть приложение Skype и наберите в данный/прошел контакт со своим именем:

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

Я думаю, что вы можете реализовать подобное поведение, открывая приложение, которое вы хотите, проходя ему нужны/необходимые аргументы.

Я надеюсь, что это поможет вам каким-то образом! :)

+0

Спасибо, я попробую – Timbo25