12.10 android双向通话录音,ClipData监听,coding.net pymongo连接使用mongo
2015-12-10 10:48
453 查看
通话双向录音代码:
http://www.freebuf.com/news/88835.html
假说有一个应用通过某种类型的用户交互在剪切板中创建,增加一个包含了被认为是“公用”组件的Intent对象的ClipData
ClipboardManager.OnPrimaryClipChangedListener
onPrimaryClipChangedListener = new
ClipboardManager.OnPrimaryClipChangedListener() {
@Override
public void onPrimaryClipChanged() {
try {
replaceClipData(clipboardManager);
} catch (URISyntaxException e) {
};
private final class PhoneListener extends PhoneStateListener { private String incomeNumber; // 来电号码 private MediaRecorder mediaRecorder; private File file; @Override public void onCallStateChanged(int state, String incomingNumber) { try { System.out.println(">>>>>>CallState>>>>>>>>" + state); switch (state) { case TelephonyManager.CALL_STATE_RINGING: // 来电 System.out.println(">>>>>>来电>>>>>>>>" + state); this.incomeNumber = incomingNumber; break; case TelephonyManager.CALL_STATE_OFFHOOK: // 接通电话 file = new File(Environment.getExternalStorageDirectory(), this.incomeNumber + System.currentTimeMillis() + ".3gp"); System.out.println(">>>>>>接通>>>>>>>>" + state); mediaRecorder = new MediaRecorder(); // mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); //获得声音数据源(下麦克风) mediaRecorder .setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);//这个设置就是获取双向声音 mediaRecorder .setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); // 按3gp格式输出 mediaRecorder .setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); mediaRecorder.setOutputFile(file.getAbsolutePath()); // 输出文件 mediaRecorder.prepare(); // 准备 mediaRecorder.start(); break; case TelephonyManager.CALL_STATE_IDLE: // 挂掉电话 System.out.println(">>>>>>挂电话>>>>>>>>" + state); if (mediaRecorder != null) { System.out.println(">>>>" + Environment.getExternalStorageDirectory()); mediaRecorder.stop(); mediaRecorder.release(); mediaRecorder = null; AppliacationIMmpl.file = file; } break; } } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
http://www.freebuf.com/news/88835.html
假说有一个应用通过某种类型的用户交互在剪切板中创建,增加一个包含了被认为是“公用”组件的Intent对象的ClipData
final ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); Intent intent = new Intent(getApplicationContext(), PublicActivity.class); intent.setAction("android.intent.action.VIEW"); intent.putExtra("ExtraString", "foobar"); ClipData setClipData; setClipData = ClipData.newIntent("intent", intent); clipboardManager.setPrimaryClip(setClipData);
ClipboardManager.OnPrimaryClipChangedListener
onPrimaryClipChangedListener = new
ClipboardManager.OnPrimaryClipChangedListener() {
@Override
public void onPrimaryClipChanged() {
try {
replaceClipData(clipboardManager);
} catch (URISyntaxException e) {
e.printStackTrace(); } }
};
pymongo连接coding的mongo
def getMongoInfo(): print getMongoInfo out = {} envs=os.environ if envs.has_key('VCAP_SERVICES'): decode = json.loads(envs['VCAP_SERVICES']) out['host'] = decode['mongodb'][0]['credentials']['host'] out['port'] = decode['mongodb'][0]['credentials']['port'] out['username'] = decode['mongodb'][0]['credentials']['username'] out['password'] = decode['mongodb'][0]['credentials']['password'] out['uri'] = decode['mongodb'][0]['credentials']['uri'] out['name'] = decode['mongodb'][0]['credentials']['name']#主要这一行,必须使用这个name的数据库,不然一直提示没有权限~ if not out.has_key('host'): out['host'] = 'localhost' out['port'] = 27017 out['username'] = 'root' out['password'] = 'root' out['name'] = 'Blog' print 'out=%s'%out return out
相关文章推荐
- 给Android Studio导入第三方库的方法
- android中延迟执行某个任务
- Android 自制的一个简单的心电图pulseview
- Android之使用PopupWindow使用和总结
- 如何从软硬件层面提升 Android 动画性能?
- Android中AlarmManager的使用
- android:scaleType属性解析
- android studio的使用说明
- Android RecyclerView 使用完全解析 体验艺术般的控件
- Android 实现 WheelView
- 提高数倍工作效率的Android Studio技巧
- Android SDK 国内镜像
- android libbinder – Binder的Native实现
- Android Studio Gradle编译项目报错弹出一个提示框没有具体的错误信息
- Android-1-电话拨号程序
- Android应用Icon大小在不同分辨率下定义
- Android中插件开发篇之----应用换肤原理解析
- Android开发--RecyclerView使用,看AndroidL新特性,android5.0新特性
- android点击两次返回键实现程序退出
- Bundle类 android基础一