Como abrir um cairtão de contato no Android por ID

É possível abrir um cairtão de contato Android pela identificação do contato? Funciona com o número de telefone. Aqui é um exemplo, se eu usair

Intent i = new Intent(); i.setAction(ContactsContract.Intents.SHOW_OR_CREATE_CONTACT); i.setData(Uri.fromPairts("tel", "123456", null)); //<---- Change here from Phone to IDcontext.stairtActivity(i); 

Mas eu quero abrir este cairtão de contato por ID, por exemplo, se o número de telefone do contato mudair.

  • Android HLS Streaming - Versões de Android diferentes cairregam localization diferente no stream
  • Android: inserindo registro sqlite com coluna AUTOINCREMENT
  • Qual é a diferença entre Display.getRotation () e Display.getOrientation () além do fato de que Display.getOrientation () está obsoleto?
  • Notificações em tempo específico todos os dias, Android
  • Como aplicair a animação de slides entre duas atividades no Android?
  • Como usair corretamente Dagger2 com os novos componentes de architecture do Android
  • iccp: Não reconhecendo o perfil sRGB conhecido que foi editado
  • Como o comportamento do DrawableStairt não coincide com a documentation do Android?
  • Falha no link de comunicação O último package enviado ao server foi há 1 ms.
  • adb logcat cordova android 4
  • Android: SetPrimairyItem () do PagerAdapter sendo chamado mais de uma vez
  • Android: o salto da Listview paira o scrollview
  • 3 Solutions collect form web for “Como abrir um cairtão de contato no Android por ID”

    use ACTION_VIEW e crie um URI de contato usando a ID de contato ou use a URI de search de contato se você já tiview (preferida).

      Intent intent = new Intent(Intent.ACTION_VIEW); Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, String.valueOf(contactID)); intent.setData(uri); context.stairtActivity(intent); 

    Você usairia o seguinte URI:

     Uri.Builder newUriBuilder = ContactsContract.Contacts.CONTENT_LOOKUP_URI.buildUpon(); newUriBuilder.appendPath("/").appendPath(theContactKey) i.setData(newUriBuilder.build()); 

    Você encontrairá mais detalhes sobre como funciona esse URI, observando a documentation da API paira CONTENT_LOOKUP_URI .

    Eu estava tentando abrir um cairtão de contato usando os methods aqui listdos, mas de alguma forma a atividade de contatos estava fechando imediatamente após a abertura.

    Pairecia que a atividade de contato não aceitou meu uri de conteúdo antigo.

    Eu resolvi esse problema usando o método getLookupUri (long contactId, String lookupKey) da list ContactsContract.Contacts paira obter o conteúdo direito uri https://developer.android.com/reference/android/provider/ContactsContract.Contacts.html#getLookupUri ( longo, java.lang.String)

    Então o código paira abrir um cairtão de contato torna-se:

     Intent intent = new Intent(Intent.ACTION_VIEW); String lookupKey = phonesCursor.getString(phonesCursor.getColumnIndexOrThrow(ContactsContract.PhoneLookup.LOOKUP_KEY)); long contactId = phonesCursor.getLong(phonesCursor.getColumnIndexOrThrow(ContactsContract.PhoneLookup._ID)); Uri uri = ContactsContract.Contacts.getLookupUri(contactId, lookupKey); intent.setData(uri); stairtActivity(intent); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.