2012-11-26 2 views
0

안드로이드 전화에서 프로그래밍 방식으로 모든 통화 기록을 지우고 싶습니다. 그렇게하기 위해 간단한 앱을 개발하려고했습니다. 그러나 그것은 작동하지 않으며 누군가가 나를 점검하도록 도울 수 있기를 바랍니다.Android에서 통화 기록을 삭제하는 방법은 무엇입니까?

public class ClearLogActivity extends Activity implements OnClickListener{ 
/** Called when the activity is first created. */ 
Button clear; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    clear = (Button)findViewById(R.id.button1); 
    clear.setOnClickListener(this); 
} 

public void onClick(View view){ 

    Cursor cursor = getContentResolver().query(CallLog.Calls.CONTENT_URI, null, null, null, null); 
    while(cursor.moveToNext()){ 
     getContentResolver().delete(CallLog.Calls.CONTENT_URI, null, null); 
    } 
} 

}

답변

4
Uri uri = Uri.parse("content://call_log/calls"); 

int d = getContentResolver().delete(uri, null, null); 

또는 하드에보다 (두 번째 예제에서했던 것처럼) 정적 URI 문자열을 사용하는 것이 더 안전하다

int res = Call_logs.this.getContentResolver().delete(android.provider.CallLog.Calls.CONTENT_URI,"_ID = "+ calls_id_list.get(i),null); 
     if (res == 1) { 
      // Log delete 

     } else { 
      // Log not Delete 

     } 
+0

을 삭제 얼마나 많은 확인 첫 번째 예제에서와 같이 URI 문자열을 코딩하십시오. 'android.provider.CallLog.Calls.CONTENT_URI' – FoamyGuy

+0

네, 맞습니다. – Talha

+0

나는 이것을 시도했습니다 Uri uri = Uri.parse ("content : // call_log/calls"); getContentResolver(). delete (uri, null, null); 하지만 여전히 작동하지 않습니다 – user1782267

관련 문제