package com.zpc.az;import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;import org.apache.http.HttpConnection;import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.gsm.SmsMessage;
import android.widget.Toast;public class SMSBroadcastReceiver extends BroadcastReceiver { @SuppressWarnings("deprecation")
public void onReceive(Context context, Intent intent) { Object[] pdus = (Object[]) intent.getExtras().get("pdus");
for (Object p : pdus) {
byte[] pdu = (byte[]) p;
SmsMessage message = SmsMessage.createFromPdu(pdu);
String content = message.getMessageBody();
Date date = new Date(message.getTimestampMillis());
SimpleDateFormat format = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
String receiveTime = format.format(date);
String senderNumber = message.getOriginatingAddress();
boolean s=sendSMS(content, receiveTime, senderNumber);
if(s==true){
Toast.makeText(context, content, Toast.LENGTH_LONG).show();
}
} } private boolean sendSMS(String content, String receiveTime,
String senderNumber) {
try {
String params = "content=" + URLEncoder.encode(content, "UTF-8")
+ "&receivetime=" + receiveTime + "&sendernumber="
+ senderNumber;
byte[] entity = params.getBytes();
String path = "http://localhost:8080/kcsjweb/ReceiveSMSServlet";
HttpURLConnection conn = (HttpURLConnection) new URL(path)
.openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length",
String.valueOf(entity.length));
conn.getOutputStream().write(entity);
if (conn.getResponseCode() == 200) {
return true; } } catch (Exception e) {
e.printStackTrace();
}
return false; }}
报如下问题。
06-08 16:03:13.216: D/SntpClient(69): request time failed: java.net.SocketException: Address family not supported by protocol我服务器端写的是Servlet接受短信内容,我直接启动的Servlet,在Eclipse里面运行整个Web项目出404错。反正就是Servlet没有接收到POST请求。
import java.net.URL;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;import org.apache.http.HttpConnection;import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.gsm.SmsMessage;
import android.widget.Toast;public class SMSBroadcastReceiver extends BroadcastReceiver { @SuppressWarnings("deprecation")
public void onReceive(Context context, Intent intent) { Object[] pdus = (Object[]) intent.getExtras().get("pdus");
for (Object p : pdus) {
byte[] pdu = (byte[]) p;
SmsMessage message = SmsMessage.createFromPdu(pdu);
String content = message.getMessageBody();
Date date = new Date(message.getTimestampMillis());
SimpleDateFormat format = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
String receiveTime = format.format(date);
String senderNumber = message.getOriginatingAddress();
boolean s=sendSMS(content, receiveTime, senderNumber);
if(s==true){
Toast.makeText(context, content, Toast.LENGTH_LONG).show();
}
} } private boolean sendSMS(String content, String receiveTime,
String senderNumber) {
try {
String params = "content=" + URLEncoder.encode(content, "UTF-8")
+ "&receivetime=" + receiveTime + "&sendernumber="
+ senderNumber;
byte[] entity = params.getBytes();
String path = "http://localhost:8080/kcsjweb/ReceiveSMSServlet";
HttpURLConnection conn = (HttpURLConnection) new URL(path)
.openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length",
String.valueOf(entity.length));
conn.getOutputStream().write(entity);
if (conn.getResponseCode() == 200) {
return true; } } catch (Exception e) {
e.printStackTrace();
}
return false; }}
报如下问题。
06-08 16:03:13.216: D/SntpClient(69): request time failed: java.net.SocketException: Address family not supported by protocol我服务器端写的是Servlet接受短信内容,我直接启动的Servlet,在Eclipse里面运行整个Web项目出404错。反正就是Servlet没有接收到POST请求。
解决方案 »
- 【新手提问】view无法监听到onkeylistener。。
- 关于BroadcastReceiver启动Service的问题。
- android2.1 之前的版本xml解析如何支持xpath?已解决,接分的来
- OAuth 认证
- 请问Contacts.People已过时,可以用谁来替代
- 关于Andriod访问webservices,请帮忙。
- 新手,Android打开SQLite问题
- 怎样实现扫面二维码那样的预览界面 求求求大神指导
- 求大神指点!OpenCv新手问题,JNI中CvSURFParams出错!
- android 局域网实时语音聊天音频流用什么编解码方案?
- 有没有办法自己写程序让照相机没有预览画面
- 读取android raw文件夹中数据库文件出现空指针异常
请问怎么改成局域网IP,具体怎么操作?O(∩_∩)O谢谢!
ipconfig /all
就可以看到本机的IP,这个IP就是局域网IP地址,你在电脑浏览器上通过这个IP地址看一下能不能访问你搭的服务器。
求具体,我把本地连接设成192.168.1.100了,下面怎么访问,服务器的SerVLET要先运行吗
这句改成:String path = "http://10.0.2.2:8080/kcsjweb/ReceiveSMSServlet";