SimChooser | Автоматическое переключение SIM-карты при исходящем вызове в зависимос



Реп: (93)
SimChooser
версия: 1.02

Последнее обновление программы в шапке: 05.11.2012

Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение

Краткое описание:
Переключение SIM-карты при исходящем вызове в зависимости от номера абонента или с помощью диалога если нет правила, возможность блокировки. Для Samsung DUOS.

Описание:
Будет полезна владельцам смартфонов Samsung DUOS (проверено на S6102, S6802, S5302, B5512)
Если Вам удалось запустить программу на других моделях Samsung DUOS, отпишитесь пожалуйста в этой теме.

При исходящем вызове по номеру абонента и по раннее введенным правилам активирует одну из двух установленных SIM-карт или выводит диалог для ручного выбора, если не соответствует ни одному из правил.

Правило представляет собой "маску" и действие. Преопределены четыре действия - спросить (вывести диалог), активировать SIM1, активировать SIM2 и блокировать. Маска - первая часть телефонного номера, подстановочные символы не поддерживаются. Для международного формата номера (+7901 или +38096, например) и внутреннего (8901 и 096 соответственно) необходимо прописывать свои правила. Можно также использовать USSD-коды мобильных операторов (*105#, *111# и т.п.) и группы контактов.

Для принудительного выбора необходимой SIM-карты перед номером телефона или USSD-кодом можно использовать префиксы 1* и 2*. Так, например, вызов 2**105# активирует вторую SIM-карту и выполнит запрос *105#

Правило "привязывается" к обозначенной SIM-карте по ее серийному номеру. Если Ваша SIM-карта не содержит серийного номера, то не зависимо от выбранного действия при исходящем вызове будет выводиться диалог выбора SIM-карт. Для каждой новой SIM-карты (если это необходимо) нужно прописывать свои правила. Правила для отсутствующей SIM в списке правил обозначены иконкой с восклицательным знаком.

Для автоматического запуска службы при включении телефона установите соответствующую опцию в настройках.

SMS/MMS НЕ ПОДДЕРЖИВАЮТСЯ! Только исходящие вызовы
Ищу метод гарантированного перехвата исходящих SMS!

Permissions
RECEIVE_BOOT_COMPLETED, READ_PHONE_STATE, PROCESS_OUTGOING_CALLS, CALL_PHONE, VIBRATE, READ_CONTACTS, WRITE_EXTERNAL_STORAGE


Разработчик: semsoft

Русский интерфейс: Есть

Скачать: версия: 1.02
Прикрепленный файлSimChooser.apk ( 77.46 КБ )


История версий
Версия 1.02 (05.11.2012)
+ Добавлено окно настроек (через меню в основном окне)
+ Группы в качестве масок
+ Экспорт(импорт) правил на(из) SD-карту(ы)
* Устранен краш при отображении списка масок
* В уведомлении выводится название SIM
* Небольшие изменения в коде

Версия 1.01а (17.09.2012)
* Исправлена ошибка, связанная с неверным отображением активной сим в статус-баре
* Увеличено время (с 5 до 10 секунд) возврата на предыдущую сим после отправки USSD-кода

Версия 1.01 (16.09.2012)
+ Теперь программа устанавливается только во внутреннюю память телефона
+ Добавлен возврат к предыдущей сим после окончания вызова, отправки USSD
+ Добавлена обработка программой при выключении одного из слотов
+ Добавлена вибрация при отображении диалога выбора сим
+ Добавлена RU, UA локализация
* Исправлена ошибка "mask is exists" при редактировании маски
* Отключен автоповорот экрана в редакторе масок
* Теперь сообщения выдаются только при автоматических действиях программы
* Переключено на всплывающие (Toast) сообщения
* Небольшие изменения в логике и коде

Версия 1.00 (06.09.2012)



Прошлые версии
версия: 1.01а Прикрепленный файлSimChooser.apk ( 81.28 КБ )

версия: 1.01 Прикрепленный файлSimChooser.apk ( 80.3 КБ )

версия: 1.00 Прикрепленный файлSimChooser.apk ( 75.55 КБ )



Сообщение отредактировал dvoriki06 - 09.11.12, 18:45
Причина редактирования: правка



Реп: (93)
Алля @ 06.09.2012, 23:51 *
Я оставила 2 версию, она у меня на телефоне пошустрее будет.

Разница между ними только в обработке USSD и включении автозагрузки. Оба дополнения работают лишь в определенные моменты времени - автозагрузка только при включении телефона, USSD только если номер начинается с * и заканчивается #. Ну и убран код, который был необходим для работы в эмуляторе, в телефоне он все равно не выполнялся. Все, отличий больше нет :)
А в чем выражается "пошустрее"? Снова диалог?

sveta832006 @ 07.09.2012, 07:48 *
тоЛЬко НА sd

Значит сохранена уже в памяти телефона, осталось только сделать ребут, чтобы убедиться в автозагрузке. Что в принципе и произошло :)
padre-ava @ 07.09.2012, 09:05 *
В настройках указано, что установлено в память телефона

Раз говорит, значит в памяти :)



Реп: (11)
В чем тогда проблема.Почему нехотит запускаться после перезагрузки.



Реп: (93)
padre-ava @ 07.09.2012, 17:47 *
Почему нехотит запускаться после перезагрузки

Перед выключением телефона служба запущена, галка в главном окне установлена в "Service active"?



Реп: (20)
semsoft @ 07.09.2012, 10:47 *
А в чем выражается "пошустрее"

открывается мгновенно не нервируя ожиданием, так сказать, а последняя чутку тормозит, а может только кажется я во вторую версию просто влюблена, мне автозагрузка и USSD не так важны можно и пару раз на шторке переключить. Интересно что изменится если сделать приложение системным :scratch_one-s_head: .

Сообщение отредактировал Алля - 07.09.12, 20:55



Реп: (93)
Алля @ 07.09.2012, 18:33 *
Интересно что изменится если сделать приложение системным

Не тестировал и даже не рассматривал такую возможность, т.к. это автоматически добавляет требование наличия root к программе.
Точно так же специально не добавлял флаг internalOnly, чтобы была возможность пользователоям самим определять - хранение на sd или автозапуск. Но наверное придется добавить...



Реп: (6)
semsoft,
Спасибо за отличную и такую нужную программу для этого телефона!!! :thank_you:
Хочу добавить, что если пытаешься редактировать уже имеющуюся маску, то пишет на английском "This mask is exists". Как я понял, это значит что такая маска уже существует и ее отредактировать не возможно. Можно только удалить ее и переписать заново. Правда это мелочи...
А еще такое пожелание, возможно ли изменить сам рисунок симки на главном экране на такой же как выставлен по умолчанию, они у меня например отличаются, так вроде как привычней будет, но это мое личное...



Реп: (93)
cAc77 @ 07.09.2012, 20:47 *
если пытаешься редактировать уже имеющуюся маску, то пишет на английском "This mask is exists".

мм... проверю, возможно начудил, когда убирал код для эмулятора. Спасибо
cAc77 @ 07.09.2012, 20:47 *
возможно ли изменить сам рисунок симки на главном экране

Изначально думал брать те, которые выбраны пользователем. Но когда дошло дело до, оказалось в ресурсах отсутствуют необходимые дополнительные иконки для отображения состояний кнопок (недоступна, нажата, выбрана и т.п.), потому и остановился на текущем варианте. Но от мысли не отказался, когда-то вернусь к этому вопросу :)



Реп: (32)
semsoft,
Очень нужная весчь для двухсимочника. Мега-нужная.
Пользуюсь ей еще на своем старичке Samsung D880 DUOS ( там он в виде патча к прошивке естественно). Думаю вы с этим патчем уже знакомы.
Хотел установить на тел жены JIAYU G2 , но в ветке по телу пишут что не работает на нем.
Можно ли исправить ситуацию ?

Вот описание патча еще для D880 DUOS.
Патч добавляет возможность автоматического выбора SIM-карты при совершении исходящего звонка.
По умолчанию включается автоматический выбор SIM-карты, в этом режиме иконки обеих SIM-карт не подсвечены. Нажатие клавиши SIM-select отключает автоматический выбор.
Настройки находятся по адресу "Диспетчер SIM-карт -> Опции -> SIM Chooser". В меню можно добавить, удалить правило или отредактировать существующее. При добавлении правило вставляется в позицию курсора.
Для каждого правила задается:
- Номер: исходящий номер, для которого будет выбираться SIM-карта. Можно использовать '*' для обозначения любой цифры.
При поиске нужного правила учитывается и длина номера тоже, т.е. под правило 5****** попадет номер 5431234, но не попадет 543123;
- SIM: физический номер слота SIM-карты, с которой будет совершаться звонок на данный номер. Какая из SIM-карт выбрана по-умолчанию, не имеет значения. При смене карты по-умолчанию перенастройка не требуется.

Пример написания правил для РБ:
+375297****** - № сим слота в котором стоит карта мтс
+375296****** - № сим слота в котором стоит карта velcom

Пример правил для РБ :
( пример для первой строки : +375 код РБ, 29 -код оператора, 1 - первая цифра номера абонента)
+375291****** Слот1
+375292****** Слот2
+375293****** Слот1
+375295****** Слот2
+375296****** Слот1
+375297****** Слот2
+375298****** Слот2
+375299****** Слот2
+37533******** Слот2
+37544******** Слот1


Только там привязка к слоту вкотором стоит та или другая симка, а в вашей проге к ее серийному номеру. Почему так ?

Сообщение отредактировал _Alexxx08_ - 07.09.12, 23:43



Реп: (93)
_Alexxx08_, с патчем не знаком, если не считать чтение описания его возможностей. Подтолкнуло к написанию программы упоминание этого патча кем-то из участников форума в теме "Обсуждение Samsung GT-S6102 Galaxy Y Duos" и их сильное желание иметь что-то похожее для S6102. Хоть для андроида до этого писать не приходилось, решился попробовать. Сразу остановился на идее простого андроид-приложения, не требующего изменения прошивки или прав суперпользователя - не все захотят или смогут поставить прошивку или рут. Куча литературы, исходники прошивки, первые сдвиги... Потом они меня подгоняли плюсиками :D, а я торопился успеть доделать основное до отъезда дочки на учебу (телефон дочки). Так в этой гонке и благодаря многим форумчанам родилось то, что имеем на данном этапе.

Программа привязана именно к прошивкам двухсимочных Samsung, т.к. по сути дублирует тот же код при переключении симок, что и в шторке.

Почему привязка к серийному номеру симки? Привязать можно было к слоту (IMEI), к индивидуальному номеру (IMSI) и к собственно серийному номеру симки. Слот отпал сразу - поменяли симки местами или заменили одну из симок, поплыли правила, попали на деньги. Остается IMSI или SN. Но ни первый, ни второй не гарантирует 100% получения значения. Кроме того, не помню где вычитал, некоторые симки могут содержать несколько индивидуальных номеров (IMSI). Вот так и пришел к серийному номеру. SN дает требуемые уникальность и гибкость - меняй местами карты, ставь новую, возвращай старую - правила не перепутаются, а в случае отсутствия правил для новой сим (да и если симка не содержит серийного номера) будет выдан диалог для выбора сим, что в свою очередь не даст попасть на деньги без ведома пользователя.
В принципе можно добавлять к уже существующему дополнительно привязку и к IMSI, и к IMEI. Но жалоб пока нет (да и из своей небольшой коллекции разнообразных симок не нашлось ни одной, не имеющей SN), смысла в добавлении пока не вижу.

Сообщение отредактировал semsoft - 08.09.12, 00:57



Реп: (2810)
M
semsoft,
Добавьте полноразмерные скриншоты в тему, согласно Правилам создания тем.



Реп: (93)
Gridzilla, в шапке скриншоты сделанные с помощью телефона, без каких-либо правок и с разрешением экрана телефона - 240х320



Реп: (20)
Поняла почему тупила программа скачанная с шапки после установки надо перезагрузить телефон. Теперь всё в порядке :good:



Реп: (11)
Также перекачал из шапки и всё стало работать. Неплохо было бы сделать импорт и экспорт маски.



Реп: (32)
что
semsoft @ 07.09.2012, 23:47 *
Программа привязана именно к прошивкам двухсимочных Samsung
Я так понял в Samsung GT-S6102 Galaxy Y Duos только один радиомодуль, как и 99% двухсимочных смартов.
Можно ли сделать версию , которая бы работала не только на Самсунгах, а на любом смарте с Андроидом ?
Гаранирую что плюсиков будет в пиццот раз больше!

Сообщение отредактировал _Alexxx08_ - 08.09.12, 21:04



Реп: (93)
_Alexxx08_ @ 08.09.2012, 21:02 *
Можно ли сделать версию , которая бы работала не только на Самсунгах, а на любом смарте с Андроидом ?

До тех пор, пока в SDK андроида не будет введена поддержка более одной сим, ответ однозначный - невозможно, каждый производитель реализует поддержку по своему. По конкретной линейке - все зависит от доступности дополнительного SDK от производителя или успешности "ковыряния" прошивки.
Алля @ 08.09.2012, 17:06 *
Теперь всё в порядке

Фух, отлегло :) Работаем дальше

Сообщение отредактировал semsoft - 08.09.12, 21:53



Реп: (18)
Программа супер. Автору респект))))))).



Реп: (93)
akch1, по поводу "Операторов.."
Увы, ситуацию может исправить только автор этой программы или человек, который возьмется ее сопровождать
заменой строки "=paramIntent.getStringExtra(Intent.EXTRA_PHONE_NUMBER)" на "=getResultData()" или хотя бы повышением приоритета BroadcastReceiver'а.
getResultData как раз и служит для организации цепочек программ с обработкой их системой по заявленным приоритетам. Используя EXTRA_PHONE_NUMBER с наименьшим значением приоритета автор с одной стороны не дает стать ниже его программы в очереди обработки, и с другой - игнорирует все изменения вышестоящих по приоритету программ.



Реп: (61)
sveta832006 @ 08.09.2012, 22:10 *
Программа супер. Автору респект))))))).

Вы бы автору "плюсики" поставили бы - тем самым подняв его репутацию!



Реп: (18)
Я плюсики поставила.



Реп: (35)
semsoft,
Поставил 3 версию :thank_you: ,но выскочил такой косяк (не знаю был ли на второй) , забивал маски -много забил и телефон повернул в руках(автоповорот соответственно включен) все слетело и все по новому,осталось только забитое ранее ,перепроверил несколько раз ,всегда ,если не сохранился и экран повернулся, все слетает .Мелочь но не приятно


Ну теперь бы ещё тебя уговорить журнал звонков переделать на человеческий :thank_you: ,раза три уже эту просьбу писал в теме S6102 :tablet_za: :yes2: ,еще пару идеек есть но это самые главные

Сообщение отредактировал titmih - 09.09.12, 13:18


Полная версия   Текстовая версия

Помощь   Правила

Сейчас: 28.02.24, 08:16