亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android應用開發:電話監聽和錄音代碼示例

2020-04-11 11:51:29
字體:
來源:轉載
供稿:網友

在oncreate 中執行:

復制代碼 代碼如下:

public void onCreate() {
  super.onCreate();
  Log.i("TAG", "服務啟動了");

  // 對電話的來電狀態進行監聽
  TelephonyManager telManager = (TelephonyManager) this
    .getSystemService(Context.TELEPHONY_SERVICE);
  // 注冊一個監聽器對電話狀態進行監聽
  telManager.listen(new MyPhoneStateListener(),
    PhoneStateListener.LISTEN_CALL_STATE);
}


實現MyPhoneStateListener:
復制代碼 代碼如下:

private class MyPhoneStateListener extends PhoneStateListener {
  MediaRecorder recorder;
  File audioFile;
  String phoneNumber;

  public void onCallStateChanged(int state, String incomingNumber) {
   switch (state) {
   case TelephonyManager.CALL_STATE_IDLE: /* 無任何狀態時 */
    if (recorder != null) {
     recorder.stop(); //停止刻錄
     recorder.reset(); //重設
     recorder.release(); //刻錄完成一定要釋放資源
    }
    break;
   case TelephonyManager.CALL_STATE_OFFHOOK: /* 接起電話時 */

    try {
     recorder = new MediaRecorder();
     recorder.setAudioSource(MediaRecorder.AudioSource.MIC); // 設置音頻采集原
     recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); //內容輸出格式
     recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); //音頻編碼方式

     // recorder.setOutputFile("/sdcard/myvoice.amr");
     audioFile = new File(
       Environment.getExternalStorageDirectory(),
       phoneNumber + "_" + System.currentTimeMillis()
         + ".3gp");
     recorder.setOutputFile(audioFile.getAbsolutePath());
     Log.i("TAG", audioFile.getAbsolutePath());

     recorder.prepare(); //預期準備
     recorder.start();

    } catch (IllegalStateException e) {
     e.printStackTrace();
    } catch (IOException e) {
     e.printStackTrace();
    }

    break;
   case TelephonyManager.CALL_STATE_RINGING: /* 電話進來時 */
    phoneNumber = incomingNumber;
    break;
   default:
    break;
   }
   super.onCallStateChanged(state, incomingNumber);
  }
 }


通過上續兩個對應的步驟即可以實現通過server對電話的監聽工作,在CALL_STATE_IDLE無狀態(即空閑狀態)、CALL_STATE_OFFHOOK 接通電話(即掛起)、CALL_STATE_RINGING 電話進來(即來電時)這幾個狀態中執行。

附:Android拍照、錄像、錄音代碼范例

復制代碼 代碼如下:

package com.cons.dcg.collect;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.*;
import android.app.*;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.*;
import android.widget.*;

public class RecordActivity extends Activity implements OnClickListener {

        private static final int RESULT_CAPTURE_IMAGE = 1;// 照相的requestCode
        private static final int REQUEST_CODE_TAKE_VIDEO = 2;// 攝像的照相的requestCode
        private static final int RESULT_CAPTURE_RECORDER_SOUND = 3;// 錄音的requestCode

        private String strImgPath = "";// 照片文件絕對路徑
        private String strVideoPath = "";// 視頻文件的絕對路徑
        private String strRecorderPath = "";// 錄音文件的絕對路徑

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

        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                super.onActivityResult(requestCode, resultCode, data);
                switch (requestCode) {
                case RESULT_CAPTURE_IMAGE://拍照
                        if (resultCode == RESULT_OK) {
                                Toast.makeText(this, strImgPath, Toast.LENGTH_SHORT).show();
                        }
                        break;
                case REQUEST_CODE_TAKE_VIDEO://拍攝視頻
                        if (resultCode == RESULT_OK) {
                                Uri uriVideo = data.getData();
                                Cursor cursor=this.getContentResolver().query(uriVideo, null, null, null, null);
                                if (cursor.moveToNext()) {
                                        /** _data:文件的絕對路徑 ,_display_name:文件名 */
                                        strVideoPath = cursor.getString(cursor.getColumnIndex("_data"));
                                        Toast.makeText(this, strVideoPath, Toast.LENGTH_SHORT).show();
                                }
                        }
                        break;
                case RESULT_CAPTURE_RECORDER_SOUND://錄音
                        if (resultCode == RESULT_OK) {
                                Uri uriRecorder = data.getData();
                                Cursor cursor=this.getContentResolver().query(uriRecorder, null, null, null, null);
                                if (cursor.moveToNext()) {
                                        /** _data:文件的絕對路徑 ,_display_name:文件名 */
                                        strRecorderPath = cursor.getString(cursor.getColumnIndex("_data"));
                                        Toast.makeText(this, strRecorderPath, Toast.LENGTH_SHORT).show();
                                }
                        }
                        break;
                }
        }

      

        /**
         * 照相功能
         */
        private void cameraMethod() {
                Intent imageCaptureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                strImgPath = Environment.getExternalStorageDirectory().toString() + "/CONSDCGMPIC/";//存放照片的文件夾
                String fileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".jpg";//照片命名
                File out = new File(strImgPath);
                if (!out.exists()) {
                        out.mkdirs();
                }
                out = new File(strImgPath, fileName);
                strImgPath = strImgPath + fileName;//該照片的絕對路徑
                Uri uri = Uri.fromFile(out);
                imageCaptureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
                imageCaptureIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
                startActivityForResult(imageCaptureIntent, RESULT_CAPTURE_IMAGE);

        }

        /**
         * 拍攝視頻
         */
        private void videoMethod() {
                Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
                intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);
                startActivityForResult(intent, REQUEST_CODE_TAKE_VIDEO);
        }

        /**
         * 錄音功能
         */
        private void soundRecorderMethod() {
                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                intent.setType("audio/amr");
                startActivityForResult(intent, RESULT_CAPTURE_RECORDER_SOUND);
        }

        /**
         * 提示信息
         * @param text
         * @param duration
         */
        private void showToast(String text, int duration) {
                Toast.makeText(ProblemReport.this, text, duration).show();
        }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩电视剧在线观看免费网站| 成人激情视频网| 日韩乱码在线视频| 一区二区日韩精品| 久久成人18免费网站| 亚洲国产欧美一区| 欧美三级欧美成人高清www| 亚洲国产毛片完整版| 亚洲国内高清视频| 欧美伊久线香蕉线新在线| 疯狂做受xxxx高潮欧美日本| 亚洲自拍偷拍网址| 欧美日韩福利电影| 一本色道久久88综合亚洲精品ⅰ| 亚洲一区二区三区sesese| 久久久久国产精品免费网站| 日韩精品在线视频观看| 久久国内精品一国内精品| 亚洲精品成人久久| 一区二区欧美在线| 97视频在线播放| 亚洲欧美制服另类日韩| 美女啪啪无遮挡免费久久网站| 亚洲精品成人网| 日韩中文理论片| 国产成人精品网站| 亚洲成人激情小说| 一区二区三区久久精品| 亚洲高清一区二| 一本色道久久88综合日韩精品| 日韩成人在线网站| 欧美大胆在线视频| 欧美大片第1页| 国产91在线高潮白浆在线观看| 亚洲美女在线观看| 日韩精品高清在线观看| 亚洲xxxx做受欧美| 亚洲第一中文字幕在线观看| 久久久国产精品免费| 亚洲美女喷白浆| 欧美一区二区视频97| 日韩在线观看视频免费| 午夜精品久久17c| 国产精品户外野外| 亚洲免费精彩视频| 国产日韩欧美中文在线播放| 亚洲第一偷拍网| 亚洲第一区中文99精品| 亚洲欧美日韩国产中文专区| 亚洲欧美在线x视频| 亚洲精品黄网在线观看| 国产精品91久久久| 国产精品久久久久免费a∨大胸| 日韩中文字幕网站| 91视频免费在线| 97久久久免费福利网址| 亚洲aa中文字幕| 久久人人爽人人爽爽久久| 久久成人精品视频| 久久久久久久av| 日韩欧美国产免费播放| 日韩中文字幕在线播放| 久久影视电视剧免费网站清宫辞电视| 亚洲国产精品大全| 欧美日韩中文字幕综合视频| 国产噜噜噜噜噜久久久久久久久| 国产午夜精品视频| 色偷偷av一区二区三区乱| 成人疯狂猛交xxx| 精品在线观看国产| 国产z一区二区三区| 成人黄色大片在线免费观看| 91精品91久久久久久| 一区三区二区视频| 久久久女人电视剧免费播放下载| 亚洲国产美女精品久久久久∴| 伊人久久男人天堂| 亚洲综合一区二区不卡| 久久久91精品国产一区不卡| 美日韩精品免费视频| 美日韩在线视频| 在线电影中文日韩| 国产精品精品久久久久久| 亚洲第一中文字幕| 日韩精品中文字幕在线播放| 欧美大片免费观看在线观看网站推荐| 91精品久久久久久久久不口人| 国产欧美日韩中文字幕在线| 国产精品wwww| 国产亚洲精品成人av久久ww| 亚洲精品色婷婷福利天堂| 岛国视频午夜一区免费在线观看| 欧美丰满少妇xxxx| 欧美日韩在线免费| 亚洲香蕉av在线一区二区三区| 97avcom| 久久精品视频一| 国产不卡av在线免费观看| 亚洲电影免费观看高清完整版| 91影视免费在线观看| 久久久成人av| 久久久av一区| 亚洲精品视频在线观看视频| 亚洲一区二区三区四区在线播放| 日韩精品欧美国产精品忘忧草| 6080yy精品一区二区三区| 国产91精品视频在线观看| 欧美大片网站在线观看| 欧美另类69精品久久久久9999| 欧美一级视频免费在线观看| 欧美一性一乱一交一视频| 亚洲va电影大全| 中文在线资源观看视频网站免费不卡| 在线观看免费高清视频97| 欧美日韩另类视频| 91成人免费观看网站| 欧美精品videossex性护士| 96pao国产成视频永久免费| 欧美伊久线香蕉线新在线| 欧美专区在线观看| 国产在线一区二区三区| 亚洲综合最新在线| 亚洲精品在线视频| 日韩精品在线看| 国产日韩精品在线| 久久午夜a级毛片| 欧美亚洲另类视频| 国产精品久久久久久久久久小说| 亚洲黄色有码视频| 国产精品一二三视频| 久久久国产一区二区三区| 精品视频久久久久久久| 久久免费精品日本久久中文字幕| 中日韩美女免费视频网站在线观看| 精品视频中文字幕| 精品国产一区二区三区四区在线观看| 91精品国产高清久久久久久| 欧美一级大胆视频| 91精品国产亚洲| 国产一区二区三区视频在线观看| 亚洲日韩中文字幕在线播放| 一区二区三区四区精品| 韩国视频理论视频久久| 国产不卡一区二区在线播放| 福利视频一区二区| 亚洲亚裔videos黑人hd| 欧美一级电影免费在线观看| 久久国产精品视频| 久久精品一区中文字幕| 亚洲人成绝费网站色www| 国产精品一区二区三区免费视频| 亚洲精品成人久久久| 国产精品自产拍在线观看| 精品国产一区二区三区在线观看| 欧美在线视频免费播放| 91亚洲精品久久久久久久久久久久| 成人欧美在线视频| 久久精品男人天堂| 精品国产依人香蕉在线精品| 性日韩欧美在线视频| 91久久国产婷婷一区二区| 亚洲人成电影网站色| 亚洲欧美日韩天堂一区二区| 亚洲第一网中文字幕|