J'ai une variable de type Bitmap et je voudrais l'assigner à un Contact de ma liste de contacts en tant qu'image CalledID, comment ferais-je cela?Comment assigner par programme une image (Bitmap) à un contact?
4
A
Répondre
4
Vous devez créer votre propre type mime pour ceux-ci.
Voici un exemple qui enregistre un booléen comme mon type mime personnalisé pour les contacts. Il utilise le dernier SDK 2.1
Important
Cet exemple utilise DATA1 pour les données, DATA1 est indexé, mais ce n'est pas recommandé pour les données binaires. Dans votre cas pour stocker des données binaires telles que l'image vous devez utiliser DATA15.
Par convention, DATA15 est utilisé pour stocker des BLOB (données binaires).
public static final String MIMETYPE_FORMALITY = "vnd.android.cursor.item/useformality";
public clsMyClass saveFormality() {
try {
ContentValues values = new ContentValues();
values.put(Data.DATA1, this.getFormality() ? "1" : "0");
int mod = ctx.getContentResolver().update(
Data.CONTENT_URI,
values,
Data.CONTACT_ID + "=" + this.getId() + " AND "
+ Data.MIMETYPE + "= '"
+ clsContacts.FORMALITY_MIMETYPE + "'", null);
if (mod == 0) {
values.put(Data.CONTACT_ID, this.getId());
values.put(Data.MIMETYPE, clsContacts.FORMALITY_MIMETYPE);
ctx.getContentResolver().insert(Data.CONTENT_URI, values);
}
} catch (Exception e) {
Log.v(TAG(), "saveFormality failed");
}
return this;
}
public boolean getFormality() {
if (data.containsKey(FORMALITY)) {
return data.getAsBoolean(FORMALITY);
} else {
// read formality
Cursor c = readDataWithMimeType(clsContacts.MIMETYPE_FORMALITY, this.getId());
if (c != null) {
try {
if (c.moveToFirst()) {
this.setFormality(c.getInt(0) == 1);
return (c.getInt(0) == 1);
}
} finally {
c.close();
}
}
return false;
}
}
public clsMyClass setFormality(Boolean value) {
data.remove(FORMALITY);
data.put(FORMALITY, value);
return this;
}
/**
* Utility method to read data with mime type
*
* @param mimetype String representation of the mimetype used for this type
* of data
* @param contactid String representation of the contact id
* @return
*/
private Cursor readDataWithMimeType(String mimetype, String contactid) {
return ctx.getContentResolver().query(
Data.CONTENT_URI,
new String[] {
Data.DATA1
},
Data.RAW_CONTACT_ID + "=" + contactid + " AND " + Data.MIMETYPE + "= '" + mimetype
+ "'", null, null);
}
L'utilisation est
objContact.setFormality(true).saveFormality();
double possible [Comment ajouter de nouveaux champs (s) au contact?] (Http://stackoverflow.com/questions/2733589/how-to- ajouter-nouveaux-champs-au-contact) – Pentium10