android短信二进制发送,在android中发送非打印字符二进制短信

我正在开发一个加密短信应用程序,我正在将短信加密到3DES,并且我试图使用SmsManager.sendDataMessage将字节数组结果发送到另一个手机,但我无法读取在接收方电话右字节数组,例如:在android中发送非打印字符二进制短信

我的应用程序发送该数组:

[0,1,2,3,4,5,6,7,-100,-101,-105,-110]

和在其它电话,我只接收(如果幸运)

[0,1,2,3,4]

我试图用许多编码发送文本,但它不工作。

我在模拟器和设备上试过,行为是一样的。

我试着从可打印的字符(字母,数字)发送字节,它的作品完美,所以我 认为这个问题是非打印字节,但我需要发送字节槽sms ....朋友制作类似的东西,但使用黑莓和它工作得很好。

我在做什么错?

这对于发送代码:

SmsManager manager = SmsManager.getDefault();

byte[] arrBytes = new byte[]{0,1,2,3,4,5,6,7,-100,-101,-105,-110};

manager.sendDataMessage(number, null, (short)0, arrBytes, null, null);

这是用于接收的码:

public void onReceive(Context context, Intent intent) {

if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){

Bundle bundle = intent.getExtras();

SmsMessage[] smsMensajes = null;

if(bundle != null){

try{

Object[] pdus = (Object[]) bundle.get("pdus");

smsMensajes = new SmsMessage[pdus.length];

byte[] msjByte = new byte[100];

for(int i=0; i < smsMensajes.length; i++){

smsMensajes[i] = SmsMessage.createFromPdu((byte[])pdus[i]);

msjByte = smsMensajes[i].getUserData();

}

}

catch(Exception e){

Log.e("Recibiendo SMS", e.toString());

}

}

}

}

感谢提前:)

2013-12-13

oware

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值