2013-07-08 1 views
0

전화를 걸던 번호로 작동하는 응용 프로그램을 개발 중입니다. 전화가 끝나면 전화 번호를 변경하고 "통화 기록"에서 변경된 번호를 볼 것입니다.전화가 끝날 때 전화 번호 변경하기

이유 이유는 내 응용 프로그램이 나가는 호출에 대한 접두사를 추가하고 통화가 끝날 때 사용자가 접두사를 보지 않고 방금 호출 한 사람을 볼 수있게하려는 것입니다. 전화 번호 앞에 전화 번호부가있는 번호가 올 경우 전화 번호부에 전화 번호가 올 경우 해당 번호는 전화를 걸지 못합니다. 안드로이드는이 번호를 전화 번호부에있는 전화 번호로 인식하지 않습니다. 그래서 그것은 단지 사용자 편의입니다.

어떻게하면됩니까?

+1

보안상의 이유로 완전히 금지되어야하며 솔루션을 찾는 데 많은 희망을주지 않을 것입니다. – Gustek

+0

예 -이 질문은 변호사/경찰/TLA 자석처럼 들립니다. OP - 그것을 제거해야합니다. (그리고 새로운 신원을 추측 할 수도 있음). –

+0

@MartinJames, 아니, 내 주인공. –

답변

1

이것을보십시오 : http://developer.android.com/reference/android/content/ContentProvider.html. 통화가 끝나면 잡기 위해 BroadcastReceiver를 구현해야합니다. 그 후에 update() 메소드를 사용하여 호출 번호를 변경할 수 있습니다. CallLog는 연락처와 연결된 ContentProvider에서 정보를 가져옵니다.

그래서 나는 전화를받지 못했습니다. 내가 읽은 CallState를 바꾼 후에. 누락 된 전화 수를 계산하는 방법의 예입니다.

private int getUnreadCallsCount() 
{ 
    if (c != null) 
    { 
     c.close(); 
     c = null; 
    } 
    String[] projection = { CallLog.Calls.CACHED_NAME, CallLog.Calls.CACHED_NUMBER_LABEL, CallLog.Calls.TYPE }; 
    StringBuilder where = new StringBuilder(); 
    where.append(Calls.NEW); 
    where.append(" = 1 AND "); 
    where.append(Calls.TYPE); 
    where.append(" = "); 
    where.append(Calls.MISSED_TYPE); 
    c = context.getContentResolver().query(CallLog.Calls.CONTENT_URI, projection, where.toString(), null, null); 
    if (c != null) 
    { 
     c.moveToFirst(); 
     return c.getCount(); 
    } 
    else 
     return 0; 
} 
+0

거기서 나는 어떻게해야합니까? –

+0

CallLog.Calls.NUMBER 예제를 추가하여 내 대답을 편집합니다. –

관련 문제