已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能终端软件开发,浙江大学计算机学院/软件学院2010.06.,7、硬件访问,智能终端开发,2010.06.,浙江大学计算机学院,3,HardwareAPIs,电话提供与电话有关的功能调用。多媒体播放音频、视频播放相机拍照与视频录像可扩展硬件传感器加速度仪与指南针APIs控制方向与运动通讯有关的程序库蓝牙、网络、Wi-Fi等,2010.06.,浙江大学计算机学院,4,音频采集,你可以使用手机进行现场录音,实现步骤如下:第一步:在功能清单文件AndroidManifest.xml中添加音频刻录权限:,2010.06.,浙江大学计算机学院,5,音频采集,第二步:编写音频刻录代码:,MediaRecorderrecorder=newMediaRecorder();recorder.setAudioSource(MediaRecorder.AudioSource.MIC);/从麦克风采集声音recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);/内容输出格式recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);/音频编码方式recorder.setOutputFile(/sdcard/itcast.amr);recorder.prepare();/预期准备recorder.start();/开始刻录.recorder.stop();/停止刻录recorder.reset();/重设recorder.release();/刻录完成一定要释放资源,2010.06.,浙江大学计算机学院,6,音乐播放,第二步:编写音频刻录代码:,MediaPlayermediaPlayer=newMediaPlayer();if(mediaPlayer.isPlaying()mediaPlayer.reset();/重置为初始状态mediaPlayer.setDataSource(/sdcard/god.mp3);mediaPlayer.prepare();/缓冲mediaPlayer.start();/开始或恢复播放mediaPlayer.pause();/暂停播放mediaPlayer.start();/恢复播放mediaPlayer.stop();/停止播放mediaPlayer.release();/释放资源mediaPlayer.setOnCompletionListener(newMediaPlayer.OnCompletionListener()/播出完毕事件OverridepublicvoidonCompletion(MediaPlayerarg0)mediaPlayer.release(););mediaPlayer.setOnErrorListener(newMediaPlayer.OnErrorListener()/错误处理事件OverridepublicbooleanonError(MediaPlayerplayer,intarg1,intarg2)mediaPlayer.release();returnfalse;);,2010.06.,浙江大学计算机学院,7,Camera相机,使用硬件,应该有相应允许。文件AndroidManifest添加:Camera类通过调用Camera.open()返回Camera对象。,/打开摄像头,获得Camera对象camera=Camera.open();,2010.06.,浙江大学计算机学院,8,Camera,使用CameraPreview通过底层引擎更新画面。调用Camera.release()释放资源,try/设置显示camera.setPreviewDisplay(holder);catch(IOExceptionexception)camera.release();/释放资源camera=null;,2010.06.,浙江大学计算机学院,9,拍摄照片takePicture,第一个参数:在图像被捕获时回调,通常通过音效表明拍摄成功。第二个参数:图片原始数据通过byte传入回调方法。可以忽略。第三个参数:生成JPEG格式图片数据时被调用,JPEG数据通过byte传入回调方法。,/拍摄照片camera.takePicture(shutterCallback,null,jpegCallback);,2010.06.,浙江大学计算机学院,10,JPEG格式数据处理,将图片存盘save(),并通过发送Intent启动内置程序显示图片。,/返回照片的JPEG格式的数据privatePictureCallbackjpegCallback=newPictureCallback()publicvoidonPictureTaken(bytedata,Cameracamera)Parametersps=camera.getParameters();if(ps.getPictureFormat()=PixelFormat.JPEG)/存储拍照获得的图片Stringpath=save(data);/将图片交给Image程序处理Uriuri=Uri.fromFile(newFile(path);Intentintent=newIntent();intent.setAction(ent.action.VIEW);intent.setDataAndType(uri,image/jpeg);startActivity(intent);,2010.06.,浙江大学计算机学院,11,保存图像,privateStringsave(bytedata)Stringpath=/sdcard/+System.currentTimeMillis()+.jpg;try/判断SD卡上是否有足够的空间Stringstorage=Environment.getExternalStorageDirectory().toString();StatFsfs=newStatFs(storage);longavailable=fs.getAvailableBlocks()*fs.getBlockSize();if(availabledata.length)returnnull;/空间不足直接返回空Filefile=newFile(path);if(!file.exists()file.createNewFile();/创建文件FileOutputStreamfos=newFileOutputStream(file);fos.write(data);fos.close();catch(Exceptione)e.printStackTrace();returnnull;returnpath;,2010.06.,浙江大学计算机学院,12,LocationManager,LocationProvider类GPS:使用GPS模块定位AGPS:使用移动电话网络蜂窝技术定位,/拍摄照片locationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);Listproviders=locationManager.getAllProviders();for(Stringp:providers)/处理Provider,2010.06.,浙江大学计算机学院,13,查询最佳LocationProvider,Criteria类选择最佳电源、精确度、方位、速度、高度,PrivateStringfindProvider()Criteriacriteria=newCriteria();criteria.setAccuracy(Criteria.ACCURACY_COARSE);criteria.setPowerRequirement(Criteria.POWER_LOW);criteria.setAlititudeRequired(false);/criteria.setBearingRequired(false);/criteria.setSpeedRequired(false);/速度criteria.setCostAllowed(true);/returnlocationManager.getBestProvider(criteria,ture);,2010.06.,浙江大学计算机学院,14,获取位置信息,getLastKnownLocation()获得设备记录的最后位置requestLocationUpdate(Stringprovider,longminTime,floatminDistance,LocationListenerlistener)minTime:回调时间间隔floatminDistance:回调距离间隔,locationManager.requestLocationUpdate(locationManager.AGPS_PROVIDER,60000,10,newLocationListener()publicvoidonLocationChanged(Locationlocation)/更新位置,2010.06.,浙江大学计算机学院,15,位置警报,addProximityAlert(doublelatitude,doublelongitude,floatradius,longexpiration,PendingIntentintent)radius:警报半径expiration:警报时间,-1则永不过期intent:由警报触发,以广播形式发出可创建BroadcastReceiver,并注册相关应用,以响应警报事件,2010.06.,浙江大学计算机学院,16,SensorManager,手机上有多种传感器,是手机的一个特色。多种传感器可作为各应用系统的输入或其它控制之用,使手机的应用别于PC,也更有趣。常见有:重力传感器加速度传感器亮度传感器距离传感器。,2010.06.,浙江大学计算机学院,17,SensorManager,SensorManager是传感器框架核心,调用Context.getSystemService获得SensorManager对象。,/创建SensorManager对象sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);,2010.06.,浙江大学计算机学院,18,SensorManager,负责管理设备上可用传感器,支持多种传感器TYPE_ALLTYPE_ACCELEROMETERTYPE_GYROSCOPETYPE_LIGHTTYPE_MAGNETIC_FIELDTYPE_ORIENTATIONTYPE_PRESSURETYPE_PROXIMITYTYPE_TEMPERATURE,2010.06.,浙江大学计算机学院,19,监听传感器事件,registerListener当传感器发生变化时,onSensorChanged()被调用。,/监听设备变化sensorManager.registerListener(SensorEventListenerlistener,Sensorsensor,intrate,Handlerhandler);,/监听设备变化sensorManager.registerListener(SensorEventListenerlistener,Sensorsensor,intrate);,2010.06.,浙江大学计算机学院,20,SensorListener,当传感器变化时,onSensorChanged()被调用。,pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025潞安化工集团有限公司第二批煤矿井下一线生产操作岗位招聘2820人笔试参考题库附带答案详解
- 2025湖北武汉青山区区管国有企业招聘3人笔试参考题库附带答案详解
- 2025浙江舟山市水务集团有限公司企业员工招聘3人笔试参考题库附带答案详解
- 2025浙江杭州市人才集团有限公司招聘16人笔试参考题库附带答案详解
- 2025河南铁建投集团郑州招聘工作人员30人笔试参考题库附带答案详解
- 2025福建省福州市润楼体育产业发展有限公司招聘1人笔试历年备考题库附带答案详解
- 2026及未来5年中国1-甲基-吲唑羧酸市场数据分析及竞争策略研究报告
- 苏州市2025江苏苏州高新区通安镇退管协管员招聘8人笔试历年参考题库典型考点附带答案详解
- 潼南区2025二季度重庆潼南事业单位招聘122人笔试历年参考题库典型考点附带答案详解
- 新疆2025新疆兵团第六师五家渠市“百名硕士进六师”招聘(75人)笔试历年参考题库典型考点附带答案详解
- 《社会工作综合能力(初级)》课件全套 第1-12章 社会工作服务的内涵 社会工作综合能力(初级)-社会工作服务相关法规与政策 社会工作综合能力(初级)
- 厨余垃圾处理项目环评报告
- 2026年低空经济(eVTOL)载人项目商业计划书
- AI辅助麻醉深度监测的临床应用
- 大连理工大学《机器学习》2024 - 2025 学年第一学期期末试卷
- 下腔静脉阻塞的护理
- 广州市从化区卫生健康局所属事业单位招聘考试真题2025
- 2025年慢性非传染性疾病控制副高真题含答案
- 宫颈机能不全诊治中国专家共识2025版
- 充电桩施工技术方案范本
- 模具外借协议书
评论
0/150
提交评论