2016-08-02 5 views
2

通話記録に変更があったときにいつでも通知を受けることができますが、の番号も必要です。ここで通話の電話番号を知りたい、通話履歴から削除する

が私のコードです:

public class MainActivity extends AppCompatActivity {  
    CallLogChangeObserverClass callLogChangeObserverClass = null; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     callLogChangeObserverClass = new CallLogChangeObserverClass(new Handler(), this); 

     //Registering content observer 
     getContentResolver().registerContentObserver(CallLog.Calls.CONTENT_URI, true, 
       callLogChangeObserverClass); 

    } 


    public class CallLogChangeObserverClass extends ContentObserver { 
     public CallLogChangeObserverClass(Handler handler, Context ct) { 
      super(handler); 
      // TODO Auto-generated constructor stub 
     } 

     public void onChange(boolean selfChange) { 
      Toast.makeText(getApplicationContext(), "Call Log Changed", Toast.LENGTH_LONG).show(); 
      //Read call Logs here 
     } 
    } 

答えて

2

最後に、私は、このためのソリューションを得たが、しかし、私は方法が正しいかどうか知りません。この作品は

execute a Query with contentResolver(), and put the data in a List 
then something is deleted again 
execute a Query with contentResolver(),and assign it to tempList. 
now compare the List and tempList 



@Override 
     public void onChange(boolean selfChange) { 
      super.onChange(selfChange);  
final int List = totalContacts(); 

if (tempList < List) { 
something is deleted 
then remove the tempList from List you will get the deleted number 

}else if (tempList == List) { 
something is updated 
then remove the tempList from List you will get the deleted number 
}else { 
     something is added(reverse the Lists) 
then remove the List from tempList you will get the deleted number 
    } 
    } 
のonChangeに

ログとContactNumber変更を呼び出します

関連する問題