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请求。
解决方案 »
- 请问HTC 机器有什么特别之处吗?
- Android src文件夹中的java类用怎样的文件夹去组织比较好?你们是用怎样的设计模式去分层到底?
- 关于launcher桌面程序的奇怪问题
- 如何看一个 android 应用的服务是什么?
- android模拟器上卸载程序
- Android 2.2源码在哪下?
- 请教大神,快播的雷达功能是怎么实现的,或者工作原理
- 关于activity binder service 线程未结束 finish 生命周期
- android 简单的窗体编程 出现source not found 错误 求助!
- 实现Wifi的热点切换,根据指定的ssid自动连接到自己想要的wifi.
- 有没有办法自己写程序让照相机没有预览画面
- 读取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";