Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 564
Записей в блоге: 1
#1

Как можно сделать выборку последних контактов? - Программирование Android

10.12.2015, 09:21. Просмотров 235. Ответов 4
Метки нет (Все метки)

Здравствуйте уважаемые!

есть выбор телефона из контактов для отправки SMS (при выборе телефон заносится в EditText), и не знаю подхода как можно организовать (по кнопке или каким-то выпадающим списком) напр. последние 10 контактов на которые отправлялось SMS ну и с возможностью очистить список последних.

Как это вообще можно сделать, куда копать?



Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2015, 09:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как можно сделать выборку последних контактов? (Программирование Android):

Дайте дельный совет, как сделать чтобы программа считывала выборку блюд - Программирование Android
Здравствуйте, я только начинаю программировать на android. И мне нужно написать программу с выбором блюд из меню и общей стоимостью заказа....

Как можно сделать маштабируемость экрана - Программирование Android
Есть ли возможность уменьшать, увеличивать представление приложения так же как мы делаем это в браузере

Как можно сделать scrolling не текста, а картинок? - Программирование Android
Подскажите пожалуйста как можно сделать scrolling не текста, а картинок

Как можно сделать линию толще (Google Maps) - Программирование Android
Я рисую путь на Google Map между двумя точками как сделать линию соединяющую эти две точки толще??

Как сделать панель с кнопками внизу, которую можно проматывать - Программирование Android
Подскажите, как сделать такую панель? Внизу кнопки и они все не входят на экран, можно промотать вправо. Как такое сделать?

Взять символы с EditText и прировнять их к переменным.Как это можно сделать? - Программирование Android
Кто знает как можно осуществить вот это. Например: Есть поле editText __02.__08.__1994__ Как взять строку и разделит на символы. ...

4
dajver
410 / 274 / 18
Регистрация: 18.09.2010
Сообщений: 1,112
10.12.2015, 16:22 #2
Java
1
String lastDialed = CallLog.Calls.getLastOutgoingCall(getApplicationContext());
Последний номер
А вообще может это поможет
http://developer.android.com/referen...Log.Calls.html
1
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
10.12.2015, 17:03 #3
мне надо было - писал себе похожее. выдрал прямо из кода. тут ограничение по времени. не совсем Ваша задача, но основная мысль, надеюсь, понятна - разбирайтесь. :-)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
    //читаем журнал вызовов
    private void GetCallLogs() {
        callLogRecords = new ArrayList<CallLogRecord>();
        
        String timestap = String.valueOf(SomeMinutesAgoFilter(MinutesOld));
        final String[] projection = null;
        final String selection = CallLog.Calls.DATE + ">= ?";
        final String[] selectionArgs = new String[]{timestap};
        final String sortOrder = android.provider.CallLog.Calls.DATE + " DESC";
        Cursor cursor = null;
        
        try{
            cursor = this.getContentResolver().query(
                    Uri.parse("content://call_log/calls"),
                    projection,
                    selection,
                    selectionArgs,
                    sortOrder);
            
            for (int i=0; i<65 && cursor.moveToNext(); i++) {
                CallLogRecord clr = new CallLogRecord(cursor);
                if (clr.IsntLucky()) {
                    callLogRecords.add(clr);
                }
            }
        } catch (Exception ex) {
//          Log.d("", "ERROR: " + ex.toString());
        } finally{
            cursor.close();
        }
    }
чуть не забыл.
XML
1
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
1
zealot01
42 / 42 / 16
Регистрация: 24.08.2015
Сообщений: 136
Завершенные тесты: 1
10.12.2015, 17:59 #4
disx, Не знаю, поможет ли, но последние 10 номеров телефонов, на которые отправлялись SMS можно например так получить.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
List<String> numbers= new ArrayList();
                Cursor cursor = getContentResolver().query(Uri.parse("content://sms/sent"), null, null, null,  null);
 
                int position=0;
 
                if(cursor.moveToFirst()){
                    String number=cursor.getString(cursor.getColumnIndexOrThrow("address")).toString();
                    if (!numbers.contains(number)) {
                        numbers.add(number);
                        position++;
                    }
 
                    while (cursor.moveToNext()&&(position<10)) {
                        number=cursor.getString(cursor.getColumnIndexOrThrow("address")).toString();
                        if (!numbers.contains(number)) {
                            numbers.add(number);
                            position++;
                        }
                    }
 
                }
XML
1
<uses-permission android:name="android.permission.READ_SMS"/>
1
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 564
Записей в блоге: 1
14.12.2015, 13:16  [ТС] #5
dajver, bastrakov, zealot01, спасибо за примеры, они реально мне пригодятся еще.

Но решил как-то конкретизировать свой вопрос, учитывая что визуальную его часть уже решил,

SMS'ы на выбранный номер отправляются из приложения (где их сохраняет SmsManager отправленных они не видны, может ошибаюсь)
типа так:
Java
1
2
SmsManager sms = SmsManager.getDefault();
            sms.sendTextMessage(_messageNumber, null, messageText, sentPI, deliveredPI);
по клику на EditText для ввода номера всплывает диалог-фрагмент в котором есть listview.

в этом листвью должны отображаться последние 10 номеров/контактов (которые были внесены в EditText и на них отправлялось SMS), и пусть даже если нет более цивилизованного способа это сделать я вижу это так:

Сохранять введенный в EdText контакт в массив из 10-ти переменных и отдавать их ListView в диалоге(ну и при выходе в SharedPrefs), при чем с этим проблем я пока не вижу, но как этот массив организовать с учетом того что допустим одинадцатый выбранный контакт должен перезаписывать первый (ну и так по кругу)... вот тут мой мозг пока не догоняет.

Помогите кто знает? Если "не туда смотрю" поправляйте, Спасибо!
0
14.12.2015, 13:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2015, 13:16
Привет! Вот еще темы с ответами:

Необходимо открыть pdf документ из сети, есть только ссылка на файл, как это можно сделать - Программирование Android
Салют! Столкнулась с проблемой: необходимо открыть pdf документ из сети, есть только ссылка на файл, как это можно сделать? Какую...

JPA. Не получается сделать выборку последних 10 записей отсортированную по Type - Java EE
Не получается сделать выборку последних 10 записей отсортированную по Type import javax.persistence.Column; import...

Как можно сделать выборку по определенному месяцу? - VBA
Есть столбец с датами. Мне нужно отфильтровать эти записи по указанному месяцу, то есть, например, ввести в диалоговом окошке месяц и...

Можно ли сделать такую выборку одним запросом или как их обьеденить? - MySQL
В продолжении темы http://www.cyberforum.ru/mysql/thread1136099.html. Есть у меня таблицы: Message(id, fromUserId, toUserId,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.