【问题标题】:Why some Android phones (>4.4) could able to modify SMS data without being default messaging app?为什么有些安卓手机(>4.4)可以修改短信数据而不是默认的短信应用?
【发布时间】:2016-02-22 16:27:38
【问题描述】:

根据 Google 的规定,从 Android KitKat 开始,只有默认的消息应用程序才能修改手机上的 SMS 数据库。我们应该让我们自己的应用程序默认进行短信数据库修改。

但问题是,我观察到一些4.4以上版本的Android手机,即使没有从手机设置中选择默认,仍然可以删除短信或将其标记为已读? (例如金立马拉松 M4 等)。

这怎么可能?手机开发商是否根据自己的要求定制固件?如果是,那么解决方法是什么?

我需要为棒棒糖制作一个应用程序,它可以读取短信并将其标记为已读,另外,它不应该影响手机附带的默认消息应用程序。股票消息应用程序应在收到短信时发出通知?有可能吗?

提前致谢。

【问题讨论】:

  • " 手机开发者是否根据自己的要求定制固件?" 是的。一些 OEM 在对操作系统进行版本控制时不会更新所有 API。这实际上在一些 OEM 中很常见。他们会说它是 Android 5.0,但电话 API 来自 3。我在电话 API、联系人 API 和其他一些 API 中看到了这一点。如果您正在与设备进行系统级集成,那将是一场噩梦。
  • 感谢您的信息。但是,您怎么会说您当前的应用 API 实际上来自标记版本或旧版本?

标签: android sms android-4.4-kitkat


【解决方案1】:

是的,您的应用应该是默认的 SMS 应用,以便在 API 19 (KitKat) 之后修改 SMS 存储,但是,KitKat 有一个workaround 来克服这种安全性。对于 API 21 (Lollipop),没有已知的方法可以在不作为默认 SMS 应用程序的情况下消除此限制。所以,你可以阅读短信,但不能标记为已读。

另外,一些智能手机制造商完全有可能取消这个限制,但我不明白在这种情况下你需要什么解决方案?

【讨论】:

  • 我已经在问题中提到了要求。我再重复一遍。 我将我的应用程序设置为默认短信应用程序,但我仍然希望股票短信应用程序在收到短信时收到通知。此外,股票短信应用程序应该能够将短信标记为已读而不被设置为默认目前我已经阅读并观察到,一旦您将您的应用设为默认,其他股票短信应用程序甚至不会收到通知或显示打开时的任何消息。作为一名Android开发人员,我没有找到任何东西。实际上我想让我的应用程序更通用。有什么解决方法吗?
  • 对不起,如果我误解了您的问题,但正如我已经说过的,“对于 API 21 (Lollipop),没有已知的方法可以消除此限制”。所以你不能做你想做的事。至少这是我所知道的
  • 好的。感谢您的确认。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-03
  • 1970-01-01
  • 2020-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-26
相关资源
最近更新 更多