#android
#Android
Вопрос:
Я внедрил C2DM, я получаю это исключение для небольшой части пользователей (как сообщает marketplace crash reporting):
java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.me.app/com.me.app.MyActivity}:
java.lang.SecurityException:
Not allowed to start service Intent {
act=com.google.android.c2dm.intent.REGISTER
pkg=com.google.android.gsf (has extras)
}
without permission com.google.android.c2dm.permission.RECEIVE
...
Caused by: java.lang.SecurityException:
Not allowed to start service Intent {
act=com.google.android.c2dm.intent.REGISTER
pkg=com.google.android.gsf (has extras) } without permission
com.google.android.c2dm.permission.RECEIVE
at android.app.ContextImpl.startService(ContextImpl.java:864)
...
У меня определенно есть «com.google.android.c2dm.permission.ПОЛУЧИТЬ»разрешение в моем манифесте, оно отлично работает для тысяч пользователей. Не уверен, почему мне говорят, что у этих пользователей нет запрошенного разрешения?
Спасибо
Комментарии:
1. На какую версию платформы вы ориентируетесь как на наименьший знаменатель? Потому что, если вы нацелены на версию ОС ниже 2.2, телефоны, работающие под управлением любой ОС ниже 2.2, не имеют C2DM и не могут его использовать. Это может вызвать исключение для них.
2. Привет, Darwind, нацелен на 1.6 — но у меня есть проверка версии платформы if-statement, прежде чем пытаться зарегистрировать c2dm. Так что это не должно быть проблемой. У меня тысячи пользователей <2.2, поэтому я ожидал бы увидеть больше таких ошибок, если бы это было так. Торговая площадка!!!
3. Хорошо, есть ли какая-либо согласованность в том, какие телефоны или ОС возвращают исключение?
4. Насколько я могу судить, написано ~ 40 отчетов с устройства: ДРУГОЕ. В одном комментарии пользователя говорится, что они используют Samsung Fascinate. Нет другого способа увидеть версию ОС или что-либо еще, что я могу узнать из интерфейса marketplace. Я не думаю, что есть какой-либо способ связаться с этими пользователями либо через текущий интерфейс marketplace?
5. Может ли быть так, что, поскольку в отчетах об ошибках Market устройства сообщаются как «ДРУГИЕ», эти устройства проходят через ваш оператор if для проверки, установлена ли ОС> = 2.2? Samsung Fascinate, похоже, работает под управлением Android 2.1 в стандартной комплектации?