使用Android阅读Google Hangouts消息

使用Android阅读Google Hangouts消息,第1张

概述我有一个 app使用TTS读取GTalk消息. Google Hangouts取代了GTalk,所以现在我需要与Hangouts集成.我终于找到了一个内容观察者,当Hangouts收到消息时会调用它. getContentResolver().registerContentObserver( Uri.withAppendedPath(Uri 我有一个 app使用TTS读取GTalk消息. Google Hangouts取代了GTalk,所以现在我需要与Hangouts集成.我终于找到了一个内容观察者,当Hangouts收到消息时会调用它.

getContentResolver().registerContentObserver(            Uri.withAppendedpath(Uri                    .parse("content://com.Google.androID.apps.babel.content.EsProvIDer/"),"messages"),true,observer);

当观察者被召唤时

public voID onChange(final boolean selfChange) {        if (paused) {            Toast.makeText(application,"paused",Toast.LENGTH_LONG).show();            return;        }        Cursor message = null;        Cursor conversation = null;        Cursor contact = null;        //Toast.makeText(application,"getting messages",Toast.LENGTH_LONG).show();        try {            final String[] messageProjection = new String[] { "body","date","type" };            /*message = getContentResolver()                    .query(Uri.withAppendedpath(                            Uri.parse("content://com.Google.androID.provIDers.talk/"),messageProjection,"err_code = 0",null,"date DESC");*/            message = getContentResolver()                    .query(Uri.withAppendedpath(                            Uri.parse("content://com.Google.androID.apps.babel.content.EsProvIDer/"),"date DESC");            if (!message.movetoFirst()) {                Toast.makeText(application,"no messages",Toast.LENGTH_LONG).show();                return;            }

我收到了一个权限错误.

05-26 07:45:12.262: E/AndroIDRuntime(9580): FATAL EXCEPTION: TalkThread05-26 07:45:12.262: E/AndroIDRuntime(9580): java.lang.SecurityException: Permission Denial: opening provIDer com.Google.androID.apps.babel.content.EsProvIDer from ProcessRecord{413dcdb8 9580:a2dp.Vol/u0a10071} (pID=9580,uID=10071) that is not exported from uID 1000505-26 07:45:12.262: E/AndroIDRuntime(9580):     at androID.os.Parcel.readException(Parcel.java:1425)05-26 07:45:12.262: E/AndroIDRuntime(9580):     at androID.os.Parcel.readException(Parcel.java:1379)05-26 07:45:12.262: E/AndroIDRuntime(9580):     at androID.app.ActivityManagerProxy.getContentProvIDer(ActivityManagerNative.java:2545)05-26 07:45:12.262: E/AndroIDRuntime(9580):     at androID.app.ActivityThread.acquireProvIDer(ActivityThread.java:4647)05-26 07:45:12.262: E/AndroIDRuntime(9580):     at androID.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvIDer(ContextImpl.java:2054)05-26 07:45:12.262: E/AndroIDRuntime(9580):     at androID.content.ContentResolver.acquireUnstableProvIDer(ContentResolver.java:1101)05-26 07:45:12.262: E/AndroIDRuntime(9580):     at androID.content.ContentResolver.query(ContentResolver.java:356)05-26 07:45:12.262: E/AndroIDRuntime(9580):     at androID.content.ContentResolver.query(ContentResolver.java:315)05-26 07:45:12.262: E/AndroIDRuntime(9580):     at a2dp.Vol.service$TalkObserver.onChange(service.java:1724)

我也尝试将此权限添加到我的清单中:

com.Google.androID.apps.babel.content.EsProvIDer.permission.READ_ONLY

我还发现this blog描述了一种寻找与这样的数据接口的方法.

我对任何可能获取最新消息的消息发送者和文本的方法持开放态度.我没有在新的环聊的AndroID界面上找到任何好的文档.这是GTalk的一个非常好的功能,我希望通过环聊获得相同的功能.任何线索,信息,建议非常感谢.

解决方法 我最终决定使用辅助功能服务阅读通知.这适用于大多数应用程序非常好.对于环聊,它会从每个发件人处读取第一封未读邮件,但后续邮件只会报告发件人名称,后跟“n条新邮件”.

我项目的源代码在这里:http://code.google.com/p/a2dpvolume/

主要看看Access.java.这是我的应用的辅助功能服务.本页:http://code.google.com/p/a2dpvolume/wiki/Accessibility_Settings解释了我的使用方式.

总结

以上是内存溢出为你收集整理的使用Android阅读Google Hangouts消息全部内容,希望文章能够帮你解决使用Android阅读Google Hangouts消息所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1124873.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存