2016-07-19 10 views
0

以下は通知をクリックしたときに連絡先を追加するために使用したコードです。 イメージを除いて他のすべてが連絡先に追加されます。何が欠けていますか?画像は連絡先に追加されていません

Bitmap bmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher); 
     ByteArrayOutputStream stream = new ByteArrayOutputStream(bmp.getWidth() * bmp.getHeight()); 
     bmp.compress(Bitmap.CompressFormat.PNG, 75, stream); 
     byte[] byteArray = stream.toByteArray(); 

     final int notificationId = new Random().nextInt(); 
     Intent notificationIntent = new Intent(Intent.ACTION_INSERT, ContactsContract.Contacts.CONTENT_URI); 
     notificationIntent.setType(ContactsContract.RawContacts.CONTENT_TYPE); 
     notificationIntent.putExtra(ContactsContract.Intents.Insert.NAME, context.getString(R.string.contact_name)); 
     notificationIntent.putExtra(ContactsContract.Intents.Insert.PHONE, context.getString(R.string.notification_number)); 
     notificationIntent.putExtra(ContactsContract.Intents.Insert.PHONE_TYPE, context.getString(R.string.notification)); 
     notificationIntent.putExtra(ContactsContract.Intents.Insert.SECONDARY_PHONE, context.getString(R.string.monitor_number)); 
     notificationIntent.putExtra(ContactsContract.Intents.Insert.SECONDARY_PHONE_TYPE, context.getString(R.string.monitor_name)); 
     notificationIntent.putExtra(ContactsContract.CommonDataKinds.Photo.PHOTO, byteArray); 

     PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0); 
     Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
     NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context) 
       .setSmallIcon(R.drawable.icon) 
       .setContentTitle(context.getString(R.string.contact_title)) 
       .setContentText(context.getString(R.string.contact_message)) 
       .setSound(defaultSoundUri) 
       .setPriority(NotificationCompat.PRIORITY_DEFAULT) 
       .setStyle(new NotificationCompat.BigTextStyle().bigText(context.getString(R.string.contact_message))) 
       .setContentIntent(pendingIntent) 
       .setAutoCancel(true); 


NotificationManager notificationManager = 
       (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
     Notification notification = notificationBuilder.build(); 
     notification.flags |= Notification.FLAG_AUTO_CANCEL; 
     notificationManager.notify(notificationId, notification); 
+0

任意の提案は本当に参考になりますを追加しました –

答えて

0

は私がライン

notificationIntent.setType(ContactsContract.RawContacts.CONTENT_TYPE); 

を削除してから

ContentValues row = new ContentValues(); 
     row.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE); 
     row.put(ContactsContract.CommonDataKinds.Photo.PHOTO, byteArray); 
     data.add(row); 

Intent notificationIntent = new Intent(ContactsContract.Intents.Insert.ACTION, ContactsContract.Contacts.CONTENT_URI); 
notificationIntent.putParcelableArrayListExtra(ContactsContract.Intents.Insert.DATA, data); 
関連する問題