gpt4 book ai didi

java - 安卓短信API

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:07:31 24 4
gpt4 key购买 nike

我知道 SMS 内容提供程序不是公共(public) API 的一部分(至少没有记录),但如果我理解正确,只要您知道如何使用 API,仍然可以使用许多 SMS 功能( ?)。

例如,将 SMS 插入您的收件箱非常简单:

 ContentValues values = new ContentValues();
values.put("address", "+457014921911");
contentResolver.insert(Uri.parse("content://sms"), values);

不幸的是,这不会触发标准的“您的收件箱中有新短信”通知。是否可以手动触发?

编辑:据我所知,Android 中的“标准邮件应用程序(消息传递)”正在使用 android.permission.RECEIVE_SMS 权限监听传入的 SMS。然后,当新的 SMS 到达时,状态栏通知会插入一个“特殊”通知 ID。因此,解决我的问题(如上所述)的一种方法是查找并发送正确的广播 Intent ;类似于“新短信已到达”的 Intent 。

编辑:从 Android 市场下载第三方消息应用程序 (chompsms)。这个应用程序更好地满足了我的需求。当我执行上面的代码时,chompsms 会注意到新的短信并显示“标准状态栏通知”。所以我会说标准的 Android 消息应用程序没有正确检测短信?还是我错了?

最佳答案

不幸的是,负责这些通知的代码隐藏在 messaging application 中.类(class)MessagingNotification有一个 static 方法 updateAllNotifications,你可以使用 PathClassLoader 调用它和反射(reflection):

PathClassLoader c = new PathClassLoader("/system/app/Mms.apk", getClassLoader());
Class.forName("com.android.mms.util.ContactInfoCache", true, c)
.getMethod("init", Context.class).invoke(null, context);
Class.forName("com.android.mms.transaction.MessagingNotification", true, c)
.getMethod("updateAllNotifications", Context.class).invoke(null, context);

This显然是一个 very bad idea出于多种原因,但我想不出另一种方法来完成您所描述的事情。

关于java - 安卓短信API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1754713/

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