forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Android (http://forum.boolean.name/forumdisplay.php?f=150)
-   -   Телефония (http://forum.boolean.name/showthread.php?t=19471)

pozitiffcat 20.10.2014 08:42

Ответ: Телефония
 
Цитата:

Сообщение от S_007 (Сообщение 288281)
не думал что на этот форум ещё заглядывают крутые программисты...! Спасибо вам ребята, за ваши ответы и наглядные примеры. Reglon, твой пример, ну ты просто маладца! Нагуглить такого примера мне не удалось по всей паутине, спасибо тебе, теперь буду знать как с логами работать. Только уже немного остыл по поводу этого, потому что где-то прочитал, да и pozitiffcat это подтверждает, что при помощи логов не а каждом аппарате будет работать. TelephonyManager раскурил вдоль и поперек, но CALL_STATE_RINGING срабатывает при входящем звонке. А задумка была до боли банальная - именно при исходящем вызове чтоб начинал работать счетчик секунд после поднятия трубки на другом конце провода, ведь это в каждом аппарате есть, (т.е. длительность разговора) только чуваки из googla такую функцию к сожалению не сделали. Если в чём-то не прав то поправьте, буду очень рад.

Ну наберусь наглости задать ещё один вопрос
как из программы удалять входящие смс, хоть по одной хоть все
нашёл вот такой код, на нём приложение вылетает, как правильно подскажите пожалуйста

Uri uriSms = Uri.parse("content://sms/inbox");
Cursor c = getContentResolver().query(uriSms, null,null,null,null);
int thread_id = c.getInt(1); //get the thread_id
getContentResolver().delete(Uri.parse("content://sms/conversations/" + thread_id),null,null);

Не факт, что запрос возвращает в поле с индексом "1" именно ту информацию, которая тебе нужна. Нужно явно указать поля.
При получении ответа ты забыл moveToFirst
Вот пример:
PHP код:

Uri uriSms Uri.parse("content://sms/inbox");
Cursor c context.getContentResolver().query(uriSms,
                     new 
String[] { "_id""thread_id"}, nullnullnull);
if (
!= null && c.moveToFirst() {
    do {
        
long id c.getLong(0);
        
long threadId c.getLong(1);
        
context.getContentResolver().delete(
                        
Uri.parse("content://sms/" id), nullnull);
    } while (
c.moveToNext());


Это удалит все СМС. Я тут показал способ перебора. Там ты можешь сравнивать поля, например по номеру телефона. Достаточно в выбираемые поля добавить "address" и в цикле перебора выполнить проверку if (addres.equals("+79379379377") { ..... ну дальше ты понял

pozitiffcat 20.10.2014 08:55

Ответ: Телефония
 
Насчет момента поднятия трубки на удаленном конце.
Покури на тему android.intent.action.NEW_OUTGOING_CALL
Там нужно будет добавить право <uses-permission android:name="android.permission.PROCESS_OUTGOING_ CALLS" />
и зарегать BroadCastReceiver на какойнибудь класс, который будет наследован от интерфейса слушателя,
PHP код:

<receiver android:name=".listener.OutCallLogger">
    <
intent-filter>
        <
action android:name="android.intent.action.NEW_OUTGOING_CALL" />
    </
intent-filter>
</
receiver

и в нем обработать событие:
PHP код:

public class OutCallLogger extends BroadcastReceiver {
   @
Override
   
public void onReceive(final Context contextIntent intent) {
      
// что-то делаем, так же можем зарегать как и раньше, что бы получать,
      // когда телефонный менеджер переходит в состояние IDLE, чтобы узнать, 
      //что трубку положили
   
}



RegIon 20.10.2014 09:27

Ответ: Телефония
 
И смотри какие разрешения требуются для работы того-то, иначе будет выкидывать приложение, если разрешения не отмечены в манифесте.
(сам долго искал баг, оказалось забыл добавить разрешение:crazy:)

pozitiffcat 20.10.2014 12:53

Ответ: Телефония
 
Цитата:

Сообщение от RegIon (Сообщение 288290)
И смотри какие разрешения требуются для работы того-то, иначе будет выкидывать приложение, если разрешения не отмечены в манифесте.
(сам долго искал баг, оказалось забыл добавить разрешение:crazy:)

само собой, я забыл написать


Часовой пояс GMT +4, время: 00:16.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot