|
Android Разработка игр на платформе Android |
20.10.2014, 08:42
|
#16
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Телефония
Сообщение от S_007
не думал что на этот форум ещё заглядывают крутые программисты...! Спасибо вам ребята, за ваши ответы и наглядные примеры. 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
Вот пример:
Uri uriSms = Uri.parse("content://sms/inbox"); Cursor c = context.getContentResolver().query(uriSms, new String[] { "_id", "thread_id"}, null, null, null); if (c != null && c.moveToFirst() { do { long id = c.getLong(0); long threadId = c.getLong(1); context.getContentResolver().delete( Uri.parse("content://sms/" + id), null, null); } while (c.moveToNext()); }
Это удалит все СМС. Я тут показал способ перебора. Там ты можешь сравнивать поля, например по номеру телефона. Достаточно в выбираемые поля добавить "address" и в цикле перебора выполнить проверку if (addres.equals("+79379379377") { ..... ну дальше ты понял
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.10.2014, 08:55
|
#17
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Телефония
Насчет момента поднятия трубки на удаленном конце.
Покури на тему android.intent.action.NEW_OUTGOING_CALL
Там нужно будет добавить право <uses-permission android:name="android.permission.PROCESS_OUTGOING_ CALLS" />
и зарегать BroadCastReceiver на какойнибудь класс, который будет наследован от интерфейса слушателя,
<receiver android:name=".listener.OutCallLogger"> <intent-filter> <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> </intent-filter> </receiver>
и в нем обработать событие:
public class OutCallLogger extends BroadcastReceiver { @Override public void onReceive(final Context context, Intent intent) { // что-то делаем, так же можем зарегать как и раньше, что бы получать, // когда телефонный менеджер переходит в состояние IDLE, чтобы узнать, //что трубку положили } }
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо pozitiffcat за это полезное сообщение:
|
|
20.10.2014, 09:27
|
#18
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Телефония
И смотри какие разрешения требуются для работы того-то, иначе будет выкидывать приложение, если разрешения не отмечены в манифесте.
(сам долго искал баг, оказалось забыл добавить разрешение )
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо RegIon за это полезное сообщение:
|
|
20.10.2014, 12:53
|
#19
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Телефония
Сообщение от RegIon
И смотри какие разрешения требуются для работы того-то, иначе будет выкидывать приложение, если разрешения не отмечены в манифесте.
(сам долго искал баг, оказалось забыл добавить разрешение )
|
само собой, я забыл написать
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:40.
|