2012-03-21 12 views
5

Potrei creare un profilo sip usando la classe SipProfile.Builder. Ho usato seguente frammento di codice per farlo:Sip Profile Building: Android

if (SipManager.isApiSupported(MyActivity.this)&& SipManager.isVoipSupported(MyActivity.this)) { 

SipManager manager=SipManager.newInstance(this); 
    SipProfile.Builder builder;try { 
           builder = new Builder(userName,domainName); 
          } catch (ParseException e) { 
           // TODO Auto-generated catch block 
           e.printStackTrace(); 
          }               manager = SipManager.newInstance(MyActivity.this); 
          builder.setPassword(password); 

          profile = builder.build(); 
          try { 
           manager.open(profile); 
          } catch (SipException e) { 


       // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } 
         try { 
          manager.register(profile, 30, MyActivity.this); 
         } catch (SipException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } 
         Toast.makeText(MyActivity.this, "created", 
           Toast.LENGTH_LONG).show(); 

         } else { 
        Toast.makeText(MyActivity.this, "Not Supported", 
          Toast.LENGTH_LONG).show(); 
       } 

Essa mostra come account SIP nel impostazioni/callsettings/Impostazioni chiamate Internet. Il problema è che non potrei renderlo come account principale. Come posso renderlo come account principale?

+0

Puoi spiegare cosa intendi per "account principale"? – hovanessyan

+0

mentre aggiungi l'account sorso manualmente nel telefono, c'è un'opzione "Rendi questo come account principale". Quindi, come posso farlo a livello di programmazione. –

risposta

2

Queste informazioni sono basate sull'account (indirizzo di posta elettronica principale per persona, numero di telefono principale, account SIP primario ecc.) Quindi sono memorizzate nel libro dei contatti del telefono.

Mi sembra che sia un'opzione impostata per dati, per account (ad esempio: questo tipo di dati (email/telefono/sip-addr) lo imposta come primario). È possibile impostare i dati come primario per un contatto utilizzando IS_PRIMARY o IS_SUPER_PRIMARY

IS_PRIMARY: Se questa è la voce principale nel suo genere per la cruda contatto a cui appartiene.

I dati su cui utilizzarlo è ContactsContract.CommonDataKinds.SipAddress. Spero che sia utile come punto di partenza.