gpt4 book ai didi

android - 使用 Android 阅读 Google Hangouts 消息

转载 作者:太空宇宙 更新时间:2023-11-03 10:49:19 24 4
gpt4 key购买 nike

我有一个 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/"),
"messages"), messageProjection, "err_code = 0",
null, "date DESC");*/

message = getContentResolver()
.query(Uri.withAppendedPath(
Uri.parse("content://com.google.android.apps.babel.content.EsProvider/"),
"messages"), messageProjection, "err_code = 0",
null, "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: TalkThread
05-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 10005
05-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)

我还尝试将此权限添加到我的 list 中:

com.google.android.apps.babel.content.EsProvider.permission.READ_ONLY

我还找到了this blog它描述了一种寻找与此类数据交互的方法。

我愿意接受任何可能获取消息发件人和最新消息文本的方法。我没有找到任何关于新环聊的 Android 界面的好文档。这是 GTalk 的一个非常好的功能,我想在 Hangouts 中获得相同的功能。非常感谢任何线索、信息和建议。

最佳答案

我最终决定使用无障碍服务来阅读通知。这适用于大多数应用程序。对于环聊,它会读取每个发件人的第一条未读消息,但后续消息只会报告发件人姓名后跟“n 条新消息”。

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

主要看Access.java。这是我的应用程序的无障碍服务。本页:http://code.google.com/p/a2dpvolume/wiki/Accessibility_Settings解释我的up如何使用它。

关于android - 使用 Android 阅读 Google Hangouts 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16760684/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com