2013-11-24 5 views
1

Я проверил образец кода, чтобы сделать ваше приложение стандартным sms-клиентом (found here), и образец проекта отлично работает на моем Nexus 4, работающем 4.4. Существует кнопка, которая при нажатии, она делает следующее:Android 4.4 SMS API - Невозможно изменить стандартное SMS-приложение в таблетках

Intent intent = new Intent(Intents.ACTION_CHANGE_DEFAULT); 
intent.putExtra(Intents.EXTRA_PACKAGE_NAME, context.getPackageName()); 
context.startActivity(intent); 

и что делает «изменение смс приложение» диалог появится, что позволяет пользователю переключаться их смс по умолчанию приложения.

Когда я запускаю тот же проект на своем Nexus 7 (2012, Wifi), кнопка ничего не делает, хотя я могу читать в Logcat, что намерение начинается. То же самое происходит с моделью Nexus 7 2013, которую я проверил.

Я попытался загрузить с сайта какое-то приложение с sms, и то же самое происходит во всех них. Они отлично работают в моем N4, не повезло в моем N7.

Любой, кто сталкивается с той же проблемой? Удалили ли они возможность писать сообщения на устройства, которые не могут отправлять тексты в целом?

Edit: Просто заметил, что документация Telephony пишет:

Примечания: Этот API не доступен на всех Android устройств с питанием. Если ваше приложение зависит от функций телефонии, например, для управления SMS-сообщениями, включите элемент в манифест, который объявит аппаратную функцию «android.hardware.telephony». Кроме того, вы можете проверить доступность телефонии во время выполнения, используя hasSystemFeature (PackageManager.FEATURE_TELEPHONY) или getPhoneType().

Итак, я предполагаю, что если устройство не имеет вышеуказанной функции, оно не может «управлять SMS-сообщениями» (быть стандартным SMS-приложением).

+1

Поскольку эти Nexus 7 не могут отправлять SMS, если они только WiFi, я не совсем уверен, что вы ожидаете. – CommonsWare

+1

Мне было интересно, если вы вообще не можете отправлять сообщения, вы все равно можете использовать Content Provider и писать сообщения на устройстве. –

+0

Я не уверен, что провайдер существует; Я не искал его на устройстве WiFi.Вы можете запустить тест, чтобы узнать, можете ли вы его прочитать, используя «ContentResolver» или «Loader». Если это не удается с какой-то ошибкой, не найденной провайдером, то у устройства нет этого провайдера. Если это удастся, однако, я не совсем уверен, что происходит, как если бы оно было документировано и существует, вы должны иметь возможность запросить, чтобы иметь возможность писать на него. – CommonsWare

ответ

1

Похоже, что sms больше не работает на Nexus 7 3G, если вы переходите на Android 4.4.

В прошлом некоторые люди могли использовать sms на своих планшетах, загрузив и установив стороннее sms-приложение. Несмотря на то, что в ROM нет приложения для обмена запасами (и AFAIK, это не официальная функция), это, как правило, работает.

Однако Android 4.4 KitKat на Nexus 7 3G отнимает эту функцию.

В Android 4.4 приложение для обмена сообщениями должно быть установлено как «приложение по умолчанию для sms», поэтому ему может быть разрешено сохранять новые сообщения в базе данных сообщений телефона. Другими словами, приложение для обмена сообщениями должно быть стандартным sms-приложением, чтобы полностью работать.

В Nexus 5 (и Android-эмуляторах) есть настройка «Настройки» ... »Беспроводная связь» По умолчанию sms-приложение, которое позволяет вам выбрать свое приложение-sms по умолчанию.

В Nexus 7 3G эта настройка НЕ ​​СУЩЕСТВУЕТ.

Похоже, что «приложение по умолчанию для sms» не поддерживается на Nexus 7. Другими словами, вы не можете установить приложение в качестве приложения sms по умолчанию. Это означает, что нельзя использовать приложение sms.