2016-04-16 20 views
1

連絡先リストを取得する必要があるアプリで作業しています。すべての連絡を取るのに時間がかかります。だから私は連絡先リストをローカルに格納することを考えている。しかし、新しい連絡先が電話に追加されたときに私は更新が必要です。新しい連絡先が端末に追加されたことをアプリに通知するにはどうすればよいですか? 私は、デバイスからの接触を取得するには、このコードを使用する: `新しい連絡先が連絡先リストに追加されたときにアプリに通知する方法

public void getContact() 
{ 
    ContentResolver cr = getContentResolver(); 
    Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, 
      null, null, null, null); 
    Log.e("curcouuntLOL",cur.getCount()+""); 

    if (cur.getCount() > 0) { 
     while (cur.moveToNext()) { 

      String id = cur.getString(
        cur.getColumnIndex(ContactsContract.Contacts._ID)); 
      String name = cur.getString(cur.getColumnIndex(
        ContactsContract.Contacts.DISPLAY_NAME)); 
      String photoUri = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.PHOTO_THUMBNAIL_URI)); 

      if (Integer.parseInt(cur.getString(cur.getColumnIndex(

        ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { 

       modelPhone=new ModelPhone(); 

       Cursor pCur = cr.query(
         ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
         null, 
         ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", 
         new String[]{id}, null); 
       while (pCur.moveToNext()) { 


        String phoneNo = pCur.getString(pCur.getColumnIndex(
          ContactsContract.CommonDataKinds.Phone.NUMBER)); 




        Toast.makeText(PhoneNumberlistActivity.this, "Name: " + name 
          + ", Phone No: " + phoneNo +" ,photoUri :" + photoUri, Toast.LENGTH_SHORT).show(); 

       } 
       pCur.close(); 
      } 
     } 
    } 



}` 
+0

はあなたをそれを動作しますか行う方法を、' ContentResolverの#registerContentObserver'返信@pskinkため – pskink

+0

感謝を参照してくださいリンクがありますか? – Suman

+0

「どのように働くか」は何ですか? – pskink

答えて

-1

uができる。この方法を:

public void generateNotification(String yourVariable) { 
     Intent offlineIntent = new Intent(this, NotificationReceiverActivity.class); 
     offlineIntent.setAction("Go Offline"); 

     Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.mipmap.logo); 

     long when = System.currentTimeMillis(); 

     Uri alarmSound = RingtoneManager 
       .getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 

     Intent notificationIntent = new Intent(getApplicationContext(), ActivityHome.class); 

     notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP 
       | Intent.FLAG_ACTIVITY_SINGLE_TOP); 


     PendingIntent mainPIntent = PendingIntent.getActivity(this, 0, 
       notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); 

     Random random = new Random(); 
     int m = random.nextInt(9999 - 1000) + 1000; 

     Notification noti = new Notification.Builder(this) 
       .setContentTitle(getResources().getString(R.string.app_name)) 
       .setContentText(alertMessage) 
       .setSmallIcon(R.mipmap.logo) 
       .setLargeIcon(largeIcon) 
       .setAutoCancel(true) 
       .setSound(alarmSound).setAutoCancel(true).setWhen(when) 
       .setContentIntent(mainPIntent) 
       .setVibrate(new long[]{1000, 1000, 1000, 1000, 1000}) 
       .build(); 

     NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
     noti.flags |= Notification.FLAG_AUTO_CANCEL; 

     notificationManager.notify(m, noti); 

    } 
+0

-1これはありません質問に答えない。表示されているときに、通知に割り当てるために乱数を使用しないでください。この方法では、通知を削除したり変更したりすることはできません。 –

関連する問題