2013-07-08 3 views
0

Я разрабатываю приложение, которое работает с числом вызываемых - оно меняет их. По завершении вызова я хочу изменить номер, который вызывается, и пользователь увидит измененный номер в «Журнале вызовов».Изменение номера при завершении звонка

Причина Я хочу, чтобы мои приложения добавляли префикс для исходящего вызова, а когда заканчивается звонок, я хочу, чтобы пользователь мог видеть, кого они только что вызвали, не видя префикса. В противном случае, если число поступит в журнал вызовов с префиксом, они не смогут этого сделать - Android не будет распознавать этот номер как номер, который существует в телефонной книге (при условии, что он это делает). Так что это просто удобство для пользователя.

Как это сделать?

+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 Я редактирую свой ответ, добавляя пример. –

Смежные вопросы