- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Android 新手。我想在 pdu 模式下发送短信,我找到了这段代码,但某些类在 android studio 中不支持(粗线)。谁能帮帮我?
private void sendsmsBypdu(String phoneNumber,String message) {
int size;
Field f;
Log.d(TAG,"Retrieving phone instance ...");
ContactsContract.CommonDataKinds.Phone phone = **PhoneFactory.getDefaultPhone();**
/* Get IccSmsInterfaceManager */
Log.d(TAG,"Retrieving SmsInterfaceManager ...");
**IccSmsInterfaceManager ismsm = getIccSmsInterfaceManager();**
try {
Log.d(TAG,"Retrieving mDispatcher ...");
**f = IccSmsInterfaceManager.class.getDeclaredField("mDispatcher");**
f.setAccessible(true);
SmsManager sms_smg = (SmsManager)f.get(ismsm);
Log.d(TAG, "Formatting class 0 SMS ...");
byte[] b = new byte[0];
SmsMessage.SubmitPdu pdus = SmsMessage.getSubmitPdu(null, phoneNumber, message,false);
/* change class to Class 0 */
size = (int)pdus.encodedMessage[2];
size = (size/2) + (size%2);
pdus.encodedMessage[size+5] = (byte)0xF0;
/* send raw pdu */
Log.d(TAG,"Sending SMS via sendRawPdu() ...");
try
{
/* Android 2.2 -> 4.0.* */
Method m = SmsManager.class.getDeclaredMethod("sendRawPdu", b.getClass(), b.getClass(), PendingIntent.class, PendingIntent.class);
m.setAccessible(true);
m.invoke(sms_smg, pdus.encodedScAddress, pdus.encodedMessage, null, null);
}
catch(NoSuchMethodException e)
{
/* Android 4.1.2 */
Method m = SmsManager.class.getDeclaredMethod("sendRawPdu", b.getClass(), b.getClass(), PendingIntent.class, PendingIntent.class, String.class);
m.setAccessible(true);
m.invoke(sms_smg, pdus.encodedScAddress, pdus.encodedMessage, null, null, phoneNumber);
}
Log.d(TAG, "SMS sent");
} catch (SecurityException e) {
Log.e(TAG, "Exception: Security !");
e.printStackTrace();
}
catch (NoSuchFieldException e) {
Log.e(TAG, "Exception: Field mDispatcher not found !");
e.printStackTrace();
} catch (IllegalArgumentException e) {
Log.e(TAG, "Exception: Illegal Argument !");
e.printStackTrace();
} catch (IllegalAccessException e) {
Log.e(TAG, "Exception: Illegal access !");
e.printStackTrace();
} catch (NoSuchMethodException e) {
Log.e(TAG, "Exception: sendRawPdu() not found !");
e.printStackTrace();
} catch (InvocationTargetException e) {
Log.e(TAG, "Exception: cannot invoke sendRawPdu() !");
e.printStackTrace();
}
}
最佳答案
我找到了我的答案。关于此的更多信息,您可以在 Hush SMS 中阅读
SmsManager sm = SmsManager.getDefault();
// Get method "sendRawPdu"
byte[] bb = new byte[1];
SmsMessage.SubmitPdu mypdu = SmsMessage.getSubmitPdu(null, pNo, msg, true);
size = (int) mypdu.encodedMessage[2];
size = (size / 2) + (size % 2);
mypdu.encodedMessage[size + 5] = (byte) 0xF0;
Log.d(TAG, dumpHexString(mypdu.encodedMessage, 0, mypdu.encodedMessage.toString().length()));
Method m2 = SmsManager.class.getDeclaredMethod("sendRawPdu", bb.getClass(),bb.getClass(),PendingIntent.class,PendingIntent.class,boolean.class,boolean.class);
Log.d("success", "success getting sendRawPdu");
m2.setAccessible(true);
int length = msg.length();
count = length / 160;
int m = length % 160;
if (m != 0) {
count++;
}
m2.invoke(sm, mypdu.encodedScAddress,mypdu.encodedMessage,sentPI,deliveredPI, Boolean.valueOf(true),Boolean.valueOf(true));
Log.d("success", "success sending message");
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
关于android - 在 Android 中以 pdu 模式发送短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24464237/
PDU pdu = new PDU(); pdu.setType(PDU.SET); pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.100.1.1"
似乎是我需要解析在 SMS BroadcastReceiver 期间收到的 PDU 字节数组: @Override public void onReceive(Context context, Int
我正在尝试构建一些 PHP 代码以通过 telnet 将 SMS 发送到 SIM 服务器,但我在发送串联消息时遇到了问题。 我读过一些关于使用填充位将编码的消息七位字节变成八位字节的内容,但我不完全理
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 8年前关闭。 Improve this questi
我正在尝试使用 python 的内置 telnet 功能自动关闭与 APC PDU 连接的设备。我相信我可以输入用户名和密码,但之后无法继续。我的代码如下: telnet_session =
大家好,我改进了我的代码..这段代码适用于任意数量的字符,但是当我传递“~`!@#$%^&*()_-=+]}[{'”;:.,>”等符号时遇到问题没有输出。如果我只传递字符和数字,我会得到所需的输出。谁
我有以下 Java 方法,我试图用它来过滤通过网络接收的 PDU 消息,并只向用户显示符合过滤条件的 PDU: public static void displayFilteredPdu(){
是否可以仅使用 golang 解析 SMS PDU 执行AT指令 AT+CMGF=0 OK AT+CMGL=4 +CMGL: 0,1,,26 0791361907002039040C913619874
我正在处理 SMS 和 PDU,并创建串联消息以通过 GSM 调制解调器 (Cinterion MC35i) 发送,但是当我发送串联消息时,它从未出现在另一端。这是与调制解调器的通信记录: at OK
我需要帮助将 PDU 模式下的短信转换为 Java 中的文本模式。 最佳答案 尝试 Android PDUParser, http://www.androidjavadoc.com/m5-rc15/c
PDU 是结构体形式还是字符串形式? (在任何模式下)。我正在制作一个 C 程序,想通过 SMPP 向手机号码发送消息。要么使用结构,要么以单个字符串发送每个 PDU 内容? 最佳答案 您需要阅读 S
我正在使用 AltBeacon 库来处理我的信标(由 Shenzhen Minew Technologies Co., Ltd. 提供)。我使用以下 beaconManager.getBeaconPa
我已成功发送多部分 pdu 短信, 问题是当我尝试将此 SMS 发送到不同网络上的号码时,出现以下错误: +CMGS ERROR:500 谁能告诉我我该怎么做。 atCommandSt
我目前正在编写和应用程序,即发送/接收短信。 出于单元测试目的,我需要以编程方式创建 PDU。解码非常简单: Bundle bundle = intent.getExtras(); if (bundl
如何从 SMS PDU 中提取消息? 我需要从 SMS PDU 获取消息。当我使用一些在线服务时,它们工作正常。例如,这里 - http://www.diafaan.com/sms-tutorials
我正在尝试从 gosnmp 包返回的 SNMP PDU 中获取 OctetString 值。即使是字节也足够了。 这是我的代码: package snmp_abstract import (
我正在使用 Wireshark 中的消息制造规范 (MMS)。该工具无法剖析 ACSE 层。它没有显示任何错误,但将 ACSE 数据显示为 MMS 的一部分,即在表示层之后显示 MMS。如果wires
我想以 PDU 模式发送短信。我已经检查了我的调制解调器的规范,它支持 PDU 模式。 我已经开发了 PDU 编码器和解码器,但现在我不知道如何将数据发送到我的调制解调器。我尝试了这些 AT 命令:
任何人都知道 byte[] 数组中可用的 Java Pdu 解析器,我主要关心的是获得符合 GSM 标准的用户数据头 (UDH)。我的意思是得到它正确。 最佳答案 smsLib比较成熟。您还可以使用
我有一个项目使用 Cloudhopper 5.0.6 库来保持 SMPP 连接(3.4 版本)并发送或接收 PDU。我需要修改默认 PDUResopnse,因此,自定义 PDU 处理是通过以下方式扩展
我是一名优秀的程序员,十分优秀!