2014-01-08 4 views
11

В моем приложении я хочу иметь одно действие, которое позволяет пользователю добавлять свои параметры учетной записи SIP в полях. Я не хочу, чтобы пойти Settings-> созывающего> Internet Call Настройки-> Добавить Accounts-> ДобавитьAndroid Create Sip Account Programmatically

я создал учетную запись с деятельностью со следующим кодом:

SipManager mSipManager = null; 

    if(mSipManager == null) { 
     mSipManager = SipManager.newInstance(this); 
    } 

    android.provider.Settings.System.putInt(context.getContentResolver(), android.provider.Settings.System.s , 0) 
    SipProfile mSipProfile = null; 
    SipManager manager = SipManager.newInstance(getBaseContext()); 

    SipProfile.Builder builder; 
    try { 
     builder = new SipProfile.Builder("XXXXX", "sip.linphone.org"); 
     builder.setPassword("XXX"); 
     mSipProfile = builder.build(); 
     manager.open(mSipProfile); 
     //manager.register(mSipProfile, 30, MyActivity.this); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

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

+1

Yo может поставить этот код в '' обслуживания и управлять услугой с вашего 'Activity' – Tofasio

ответ

2

Почему бы не начать работу с настройками системного sip, и им не нужно перемещаться по системе, но может добавить учетную запись в систему.

if (SipManager.isVoipSupported(this) && SipManager.isApiSupported(this)){ 
    // SIP is supported, let's go! 
    Intent intent = new Intent(); 
    intent.setAction("android.intent.action.MAIN"); 
    intent.setComponent(ComponentName.unflattenFromString("com.android.phone/.sip.SipSettings")); 
    startActivity(intent); } 
+0

Не поможет, если вы пишете собственное приложение SIP, например, и потребуется введенные учетные данные (включая пароль), чтобы вручную зарегистрировать учетную запись впоследствии через свой собственный стек SIP. – EntangledLoops