Cómo mostrar la tarjeta QuickContact desde el widget
Tengo un widget que muestra la imagen de algunos de mis contactos y me gustaría mostrar la tarjeta QuickContact cuando el usuario toque en una de las imágenes. Sé que debo usar el método ContactsContract.QuickContact.showQuickContact (), pero requiere una vista o un Rect como uno de los parámetros de entrada. Mi problema es que los widgets sólo tienen RemoteViews, así que no estoy seguro de qué pasar como el parámetro View o Rect. Cualquier idea sería apreciada.
- ¿Leer contactos sin permiso?
- Intent.ACTION_PICK devuelve el cursor vacío para algunos contactos
- Integrar mi aplicación con el contacto
- Android: obtener la identificación de contacto después de insertar
- ¿Cómo actualizar la empresa de contacto de Android?
- Recuperar imagen predeterminada del contacto de Android
- Leer todos los datos de contacto
- Insertar una nueva intención de contacto
- Obtener el nombre y el correo electrónico de la lista de contactos es muy lento
- Android: Cómo guardar contactos en sdcard como vCard. Sin duplicados?
- ¿Cómo puedo configurar un tono para un contacto individual en Android?
- Importar contactos CSV en el teléfono Android 4
- Obtenga todos los nombres y números de contacto como una lista de cadenas en Android
Puede hacer referencia a la insignia en el XML
Tengo esto en el archivo XML:
<QuickContactBadge android:id="@+id/photo" android:layout_width="54dip" android:layout_height="57dip" android:layout_marginLeft="5dip" android:background="@drawable/quickcontact_photo_frame" style="?android:attr/quickContactBadgeStyleWindowSmall" />
Y este código:
private QuickContactBadge mPhotoView; mPhotoView = (QuickContactBadge) findViewById(R.id.photo); mPhotoView.assignContactUri(objItem.getUri()); mPhotoView.setMode(QuickContact.MODE_MEDIUM);
Y este es el modo de llamada (pero el clic en la insignia es el manejo de este popup, esta llamada también popup el selector se hace haciendo clic en otra cosa)
QuickContact.showQuickContact(viewContactQuick.this, mPhotoView,objItem.getLookupUri() , QuickContact.MODE_MEDIUM, null);
Para mostrar la interfaz de usuario de QuickContact a través de un widget, puede realizar una devolución de llamada PendingIntent utilizando la técnica ilustrada aquí:
http://advback.com/android/working-with-app-widgets-android/
En su widget onUpdate (), cree la intención y asocie con RemoteView:
intent = new Intent(context, MyWidget.class); intent.setAction(ACTION_WIDGET_RECEIVER); Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey); intent.setData(uri); pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0); views.setOnClickPendingIntent(R.id.my_widget_view, pendingIntent);
Cuando se hace clic en la vista, recibirá una notificación onReceive () en su widget. Use Intent.getSourceBounds () para recuperar el rect y muestre el QuickContact:
public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(ACTION_WIDGET_RECEIVER)) { Uri uri = intent.getData(); if ( uri != null ) { QuickContact.showQuickContact(context, intent.getSourceBounds(), uri, ContactsContract.QuickContact.MODE_SMALL, null); } } super.onReceive(context, intent); }
He estado buscando esto también. Tal vez la fuente de la aplicación Contactos sea útil. Estoy intentando digg in: link text
He estado luchando con esto desde hace algún tiempo también. Mirando el código fuente de Android, parece que Google hizo una actividad transparente llamada QuickContactActivity y colocó el QuickContactWindow (la clase que crea el popup) dentro de eso. He intentado lo mismo y la actividad transparente funciona, pero tengo problemas para conseguir que la insignia aparezca. Conozco el código de QuickActions de Qberticus y lo probé, pero prefiero simplemente usar los contactos rápidos que escribió google porque duplicar su funcionalidad y su aspecto es bastante desafiante.
También he estado recibiendo ActivityNotFoundException cuando intento utilizar el método de QuickContact.showQuickContact () en Eclair – trabaja grande sobre Froyo sin embargo.
Aquí está mi pregunta. Sería realmente impresionante si pudiéramos trabajar juntos para resolver este problema: link
- No se puede trabajar con Android en una red corporativa con seguridad WPA / WPA2. Siempre desconecta?
- ¿Cómo acceder a otro vértice en un programa de sombreado de vértices en opengl es 2?