- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过 Stackoverflow Send message via whatsapp programmatically 中“user1079425”指示的辅助服务按“发送”按钮,将图像发送到一定数量的 Whatsapp。 .
这是我正在使用的代码:
private void sendImageWhatsapp (String telephone){
String toNumber, tel, message;
String mystring = "\u0007";
// adjust tel.number
tel = telephone.replaceAll("[^0-9+]","");
if (tel.substring(0,1).equalsIgnoreCase("+")){
tel = tel.substring(1);
}
else{
if (tel.substring(0,2).equalsIgnoreCase("00")){
tel = tel.substring(2);
}
else{
tel = context.getApplicationContext().getResources().getString(R.string.prefix_code) + tel;
}
}
//String toNumber = "+91 98765 43210"; // contains spaces.
//toNumber = toNumber.replace("+", "").replace(" ", "");
toNumber = tel; // E164 format without '+' sign
message = imageDidascalia.getText().toString() + mystring;
Intent sendIntent = new Intent("android.intent.action.MAIN");
//sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(imageFile));
sendIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
sendIntent.putExtra("jid", toNumber + "@s.whatsapp.net");
sendIntent.putExtra(Intent.EXTRA_TEXT, message);
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.setPackage("com.whatsapp");
sendIntent.setType("image/png");
context.startActivity(sendIntent);
}
public class WhatsappAccessibilityService extends AccessibilityService {
private int index = 0;
@Override
public void onAccessibilityEvent (AccessibilityEvent event) {
if (getRootInActiveWindow () == null) {
return;
}
AccessibilityNodeInfoCompat rootInActiveWindow = AccessibilityNodeInfoCompat.wrap (getRootInActiveWindow ());
// Whatsapp Message EditText id
List<AccessibilityNodeInfoCompat> messageNodeList = rootInActiveWindow.findAccessibilityNodeInfosByViewId ("com.whatsapp:id/entry");
if (messageNodeList == null || messageNodeList.isEmpty ()) {
// Whatsapp Image EditText id
index=1;
messageNodeList = rootInActiveWindow.findAccessibilityNodeInfosByViewId ("com.whatsapp:id/pickfiletype_gallery");
if (messageNodeList == null || messageNodeList.isEmpty ()) {
return;
}`enter code here`
//return;
}
// check if the whatsapp message EditText field is filled with text and ending with your suffix (explanation above)
AccessibilityNodeInfoCompat messageField = messageNodeList.get (index);
if (messageField.getText () == null || messageField.getText ().length () == 0
|| !messageField.getText ().toString ().endsWith ("\u0007")) { // So your service doesn't process any message, but the ones ending your apps suffix
// || !messageField.getText ().toString ().endsWith (getApplicationContext ().getString (R.string.whatsapp_suffix))) { // So your service doesn't process any message, but the ones ending your apps suffix
return;
}
// Whatsapp send button id
List<AccessibilityNodeInfoCompat> sendMessageNodeInfoList = rootInActiveWindow.findAccessibilityNodeInfosByViewId ("com.whatsapp:id/send");
if (sendMessageNodeInfoList == null || sendMessageNodeInfoList.isEmpty ()) {
return;
}
AccessibilityNodeInfoCompat sendMessageButton = sendMessageNodeInfoList.get (0);
if (!sendMessageButton.isVisibleToUser ()) {
return;
}
// Now fire a click on the send button
sendMessageButton.performAction (AccessibilityNodeInfo.ACTION_CLICK);
// Now go back to your app by clicking on the Android back button twice:
// First one to leave the conversation screen
// Second one to leave whatsapp
try {
Thread.sleep (500); // hack for certain devices in which the immediate back click is too fast to handle
performGlobalAction (GLOBAL_ACTION_BACK);
Thread.sleep (500); // same hack as above
} catch (InterruptedException ignored) {}
performGlobalAction (GLOBAL_ACTION_BACK);
}
@Override
public void onInterrupt() {
}
}
此代码适用于消息,但不适用于图像。
最佳答案
我也遇到了同样的问题。我花了很长时间解决了这个问题。如果您想在没有用户交互的情况下发送图像,您只需删除应用于 WhatsApp 编辑文本的代码和条件即可。我会直接跳转到按钮代码,您的图像将自动发送到您输入的号码。`覆盖 fun onAccessibilityEvent(事件: AccessibilityEvent) { if (rootInActiveWindow == null) { 返回 } val rootInActiveWindow = AccessibilityNodeInfoCompat.wrap(rootInActiveWindow)
// Whatsapp Message EditText id
/*val messageNodeList = rootInActiveWindow.findAccessibilityNodeInfosByViewId("com.whatsapp:id/entry")
if (messageNodeList == null || messageNodeList.isEmpty()) {
return
}
// check if the whatsapp message EditText field is filled with text and ending with your suffix (explanation above)
val messageField = messageNodeList[0]
if (messageField.text == null || messageField.text.length == 0 || !messageField.text.toString().endsWith("abcd")) { // So your service doesn't process any message, but the ones ending your apps suffix
return
}*/
// Whatsapp send button id
val sendMessageNodeInfoList = rootInActiveWindow.findAccessibilityNodeInfosByViewId("com.whatsapp:id/send")
if (sendMessageNodeInfoList == null || sendMessageNodeInfoList.isEmpty()) {
return
}
val sendMessageButton = sendMessageNodeInfoList[0]
if (!sendMessageButton.isVisibleToUser) {
return
}
// Now fire a click on the send button
sendMessageButton.performAction(AccessibilityNodeInfo.ACTION_CLICK)
// Now go back to your app by clicking on the Android back button twice:
// First one to leave the conversation screen
// Second one to leave whatsapp
try {
Thread.sleep(2800) // hack for certain devices in which the immediate back click is too fast to handle
performGlobalAction(GLOBAL_ACTION_BACK)
Thread.sleep(2800) // same hack as above
} catch (ignored: InterruptedException) {
}
performGlobalAction(GLOBAL_ACTION_BACK)
}
`如果将图像与文本一起传递,则编辑文本将返回 null,因此我们注释编辑文本的代码。请仔细阅读我如何注释 Whatsapp 编辑文本的代码,以便它直接执行按钮单击。
关于java - 向 Whatsapp 用户发送图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57738868/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 5年前关闭。 Improve this qu
我在此网站页脚中使用共享按钮。除了 url http://gnr.richkid.co.il/he/catalog/a/item/?ItemID=etc 的页面之外,whatsapp 按钮在所有页面中
这张图片在 WhatsApp 中流传,是带有 alpha 信息的 PNG 图像。如果您重新共享原始文件,则仅适用于 PNG。您尝试上传 PNG 文件(此文件或任何其他文件)的所有内容都会转换为 JPG
我在 Google 上做了很多研究。有很多教程和应用程序可以做到这一点。我测试了最知名的:App2SD、Link2SD、FolderMount。我什至购买了他们的商业版,以确保我启用了所有功能。好吧,
我使用 C# 创建了一个 Win 表单应用程序。这是向输入/选定的 Excel 文件手机号码发送批量 Whats App 消息。在制作这个软件的过程中,Whatsapp屏蔽了我的两个号码,原因是发送多
我在我的服务器上设置了 Yowsup。我关注了 this guide并设置一切没有任何错误。但是在最后一步,即发送消息时,它不会引发任何错误,但消息不会到达我手机上的 Whatsapp。 以下是输出供
我正在尝试实现一个 WhatsApp 机器人,它使用 chromedriver 并打开 whatsapp 网络,并向联系人发送消息。这些是程序的步骤: 从 excel 文件中读取联系人 设置发送消息的
我将WhatsApp语音消息(WhatsApp业务云API)中的音频文件发送到Google语音到文本识别。非常奇怪的是,它适用于从Windows WhatsApp客户端发送的语音消息。因此,让官方的W
是否可以将 IBM Watson Assistant(对话)与 WhatsApp 集成?我尝试在互联网上搜索,但没有找到太多。 最佳答案 我们正在努力与 Watson IBM 集成,这将带来 amio
我不确定这在这里是否离题,但我发现了其他 WhatsApp 问题。 如果我分享包含 IP 地址的链接,例如: http://123.456.789.456/mystuff WhatsApp 只为数字(
我正在尝试获取联系人的用户名、状态和上次查看数据的转储。 由于 WhatsApp 没有 API,因此我将其安装在 BlueStacks 上,并尝试拍摄可能存储这些详细信息的数据库的快照。 我有几个问题
是否可以使用 WhatsApp 服务器向 WhatsApp 组发送消息,在我自己的应用程序中而不打开 WhatsApp 应用程序? 另外,请帮助我了解 WhatsApp 联系人聊天的历史记录。 最佳答
我正在尝试从我的应用程序中选择联系人的 Whatsapp 地址,但鉴于我的应用程序是 Whatsapp 的实用程序,我希望用户继续使用选择联系人的 native 方式,这样他们不必习惯对我们大多数人来
假设我需要用户填写的表格很少,包括联系电话。填写完所有表格后,我希望该联系电话应该收到一条消息,其中包括一些问候语或单击以在表格中使用的一些文本或图像。该消息应作为简单的 SMS 和 WhatsApp
我正在尝试构建一个后台服务,我可以在其中将消息从我的 whatsapp 发送到其他用户的 whatsapp。我试过这段代码 PackageManager packageManager = getApp
如果您能在以下方面提供帮助,我们将不胜感激。通过我们的应用程序,用户可以启动 WhatsApp 消息(发生的情况是 WhatsApp 客户端以预加载的电话 + 文本开始,因此用户只需点击 WhatsA
我为类似的问题找到了很多线索,但在任何地方我都找不到我要找的东西。 给定联系人号码和短信,我想以编程方式向该联系人发送 WhatsApp 消息,而无需打开应用程序或选择联系人。 到目前为止,我已经编写
我的要求是在 Gallery/Albums 下显示目录, 以以下方式创建目录并不能完全满足我的要求... File rootPath = new File(Environment.getExtern
我知道如何使用 WhatsApp 官方 API 向任何号码发送消息 https://api.whatsapp.com/send?phone= 但是,如果用户加入该群组,有什么方法可以向 WhatsAp
我使用这段代码,但它显示了其他应用程序。 NSURL *URL = [[NSBundle mainBundle] URLForResource:@"ABC" withExtension:@"png"]
我是一名优秀的程序员,十分优秀!