【问题标题】:Receiving GTalk messages in own app?在自己的应用程序中接收 GTalk 消息?
【发布时间】:2013-04-13 16:08:42
【问题描述】:

我是 Android 开发新手。我是 Android 的 Inbuilt Talk 应用程序的忠实粉丝,但我讨厌它缺乏可定制的通知,所以我决定为它开发一个应用程序。

我的要求是一个应用程序,它可以监视 GTalk,并在收到消息时显示预先自定义的通知。

请注意,我不希望我的应用向用户询问 GTalk 用户名或密码。 我知道 Asmack 库,但它对 IM 客户端更有用,我的要求只是获取传入的消息事件。 (类似于 SMS 的 BroadcastReceiver?)

是否可以像使用BroadcastReceiver 检索 SMS 消息一样检索 Gtalk 消息?

【问题讨论】:

  • I don't want my app to ask user for GTalk username or password 请清楚这是什么意思?
  • 他可能的意思是他不想创建一个全新的即时应用程序

标签: android google-talk


【解决方案1】:

没有记录和支持的方法可以做到这一点,我真诚地希望 Google 没有留下一些没有记录、不受支持和不安全的方法。

【讨论】:

  • 也许没有适当的文档,但实现是可能的,Gtalk 的超级通知应用程序可以做到这一点,它会在 GTalk 中收到消息时产生自定义振动和/或铃声,最重要的是,它不会安装时不要询问用户名和密码...所以我想知道该怎么做。
  • @CommonsWare,啊,但他们做到了!从某种意义上说,它是“安全的”,因为它背后有一个额外的权限,但它(据我所知)没有记录且不受支持(尽管如果它们不受支持,暴露 protectionLevel="dangerous" 权限有什么用?)。
【解决方案2】:

虽然没有记录,但 Google 服务框架公开了允许您访问 Google Talk 内容提供者的权限(GTalk Super Notifier 使用其中一种来发挥其魔力)。不过,我找不到有关该内容提供者的任何文档,因此您必须对其进行逆向工程。

以下是相关权限:

+ group:android.permission-group.MESSAGES
  + permission:com.google.android.providers.talk.permission.READ_ONLY
    package:com.google.android.gsf
    label:read instant messages
    description:Allows apps to read data from the Google Talk content provider.
    protectionLevel:dangerous
  + permission:com.google.android.providers.talk.permission.WRITE_ONLY
    package:com.google.android.gsf
    label:write instant messages
    description:Allows apps to write data to the Google Talk content provider.
    protectionLevel:dangerous

顺便说一句,Google 会以 protectionLevel="dangerous" 公开权限而不记录它们的使用,这很奇怪。

【讨论】:

  • 谢谢!这使我走上了正确的道路,因此获得了赏金。我可能会在某个时候创建​​一个演示应用程序,以防其他人需要它。
  • @Doug 你有没有想过是否可以查询 Google Hangout?我正在尝试获取未读短信计数,到目前为止,我只能通过观察 Telephony.Sms 来获取未读短信计数。我已经获得了 com.google.android.gm.permission.READ_CONTENT_PROVIDER 权限,但我不确定要查询的 Uri。
  • @GaBo,不,我没有。我一直没弄明白,所以我放弃了。如果您碰巧找到解决方案,我很想知道。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-11
相关资源
最近更新 更多