Android教程07-硬件访问_第1页
Android教程07-硬件访问_第2页
Android教程07-硬件访问_第3页
Android教程07-硬件访问_第4页
Android教程07-硬件访问_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、浙浙 江江 大大 学学 软软 硬硬 件件 协协 同同 设设 计计 实实 验验 室室http:/ Android 课程讲义课程讲义智能手机开发2010.06.1浙浙 江江 大大 学学 软软 硬硬 件件 协协 同同 设设 计计 实实 验验 室室http:/ 7、硬件访问、硬件访问智能手机开发2010.06.2浙浙 江江 大大 学学 软软 硬硬 件件 协协 同同 设设 计计 实实 验验 室室Hardware APIsHardware APIsp电话n提供与电话有关的功能调用。p多媒体播放n音频、视频播放p相机n拍照与视频录像p可扩展硬件传感器p加速度仪与指南针APIsn控制方向与运动p通讯有关的程序

2、库n蓝牙、网络、Wi-Fi等2010.06.3浙浙 江江 大大 学学 软软 硬硬 件件 协协 同同 设设 计计 实实 验验 室室音频采集音频采集p你可以使用手机进行现场录音,实现步骤如下:n第一步:在功能清单文件AndroidManifest.xml中添加音频刻录权限:2010.06.4浙浙 江江 大大 学学 软软 硬硬 件件 协协 同同 设设 计计 实实 验验 室室音频采集音频采集n第二步:编写音频刻录代码:MediaRecorder recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSour

3、ce.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(); /重设 reco

4、rder.release(); /刻录完成一定要释放资源2010.06.5浙浙 江江 大大 学学 软软 硬硬 件件 协协 同同 设设 计计 实实 验验 室室音乐播放音乐播放n第二步:编写音频刻录代码:MediaPlayer mediaPlayer = new MediaPlayer();if (mediaPlayer.isPlaying() mediaPlayer.reset();/重置为初始状态mediaPlayer.setDataSource(/sdcard/god.mp3);mediaPlayer.prepare();/缓冲mediaPlayer.start();/开始或恢复播放medi

5、aPlayer.pause();/暂停播放mediaPlayer.start();/恢复播放mediaPlayer.stop();/停止播放mediaPlayer.release();/释放资源mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() /播出完毕事件 Override public void onCompletion(MediaPlayer arg0) mediaPlayer.release(); );mediaPlayer.setOnErrorListener(new MediaPla

6、yer.OnErrorListener() / 错误处理事件 Override public boolean onError(MediaPlayer player, int arg1, int arg2) mediaPlayer.release();return false; );2010.06.6浙浙 江江 大大 学学 软软 硬硬 件件 协协 同同 设设 计计 实实 验验 室室CameraCamera相机相机p使用硬件,应该有相应允许。n文件AndroidManifest添加:pCamera类通过调用 Camera.open() 返回Camera对象。/打开摄像头,获得Camera对象cam

7、era = Camera.open(); 2010.06.7浙浙 江江 大大 学学 软软 硬硬 件件 协协 同同 设设 计计 实实 验验 室室CameraCamerap使用CameraPreview通过底层引擎更新画面。p调用Camera.release()释放资源try /设置显示camera.setPreviewDisplay(holder); catch (IOException exception) camera.release();/释放资源camera = null;2010.06.8浙浙 江江 大大 学学 软软 硬硬 件件 协协 同同 设设 计计 实实 验验 室室拍摄照片拍摄照片

8、takePicturetakePicturep第一个参数:在图像被捕获时回调,通常通过音效表明拍摄成功。p第二个参数:图片原始数据通过byte传入回调方法。可以忽略。p第三个参数:生成JPEG格式图片数据时被调用,JPEG数据通过byte传入回调方法。/拍摄照片camera.takePicture(shutterCallback, null, jpegCallback);2010.06.9浙浙 江江 大大 学学 软软 硬硬 件件 协协 同同 设设 计计 实实 验验 室室JPEGJPEG格式数据处理格式数据处理p将图片存盘save(),并通过发送Intent启动内置程序显示图片。/返回照片的JP

9、EG格式的数据private PictureCallback jpegCallback = new PictureCallback()public void onPictureTaken(byte data, Camera camera) Parameters ps = camera.getParameters();if(ps.getPictureFormat() = PixelFormat.JPEG) /存储拍照获得的图片 String path = save(data); /将图片交给Image程序处理 Uri uri = Uri.from ); Intent intent = new I

10、ntent(); intent.setAction(ent.action.VIEW); intent.setDataAndType(uri, image/jpeg); startActivity(intent);2010.06.10浙浙 江江 大大 学学 软软 硬硬 件件 协协 同同 设设 计计 实实 验验 室室保存图像保存图像private String save(byte data)String path = /sdcard/+System.currentTimeMillis()+.jpg;try /判断SD卡上是否有足够的空间String storage = Env

11、ironment.getExternalStorageDirectory().toString();StatFs fs = new StatFs(storage);long available = fs.getAvailableBlocks()*fs.getBlockSize();if(availabledata.length)return null; /空间不足直接返回空 = new );if(!()(); /创建文件 fos = new (file);fos.write(data);fos.close(); catch (Exception e) e.printStackTrace();r

12、eturn null;return path;2010.06.11浙浙 江江 大大 学学 软软 硬硬 件件 协协 同同 设设 计计 实实 验验 室室LocationManagerLocationManagerpLocationProvider类nGPS:使用GPS模块定位nAGPS:使用移动电话网络蜂窝技术定位/拍摄照片locationManager= (LocationManager)getSystemService(Context.LOCATION_SERVICE);List providers= locationManager.getAllProviders();for(String p

13、:providers)/处理Provider2010.06.12浙浙 江江 大大 学学 软软 硬硬 件件 协协 同同 设设 计计 实实 验验 室室查询最佳查询最佳LocationProviderLocationProviderpCriteria类n选择最佳电源、精确度、方位、速度、高度Private String findProvider()Criteria criteria = new Criteria();criteria.setAccuracy(Criteria.ACCURACY_COARSE);criteria.setPowerRequirement(Criteria.POWER_LO

14、W);criteria.setAlititudeRequired(false); /criteria.setBearingRequired(false);/criteria.setSpeedRequired(false);/速度criteria.setCostAllowed(true);/return locationManager.getBestProvider(criteria, ture);2010.06.13浙浙 江江 大大 学学 软软 硬硬 件件 协协 同同 设设 计计 实实 验验 室室获取位置信息获取位置信息pgetLastKnownLocation()n获得设备记录的最后位置pr

15、equestLocationUpdate(String provider, long minTime, float minDistance, LocationListener listener)nminTime:回调时间间隔nfloat minDistance:回调距离间隔locationManager.requestLocationUpdate(locationManager.AGPS_PROVIDER,60000, 10, new LocationListener()public void onLocationChanged(Location location)/更新位置2010.06.1

16、4浙浙 江江 大大 学学 软软 硬硬 件件 协协 同同 设设 计计 实实 验验 室室位置警报位置警报paddProximityAlert(double latitude, double longitude, float radius, long expiration, PendingIntent intent)nradius:警报半径nexpiration:警报时间,-1则永不过期nintent:由警报触发,以广播形式发出p可创建BroadcastReceiver,并注册相关应用,以响应警报事件2010.06.15浙浙 江江 大大 学学 软软 硬硬 件件 协协 同同 设设 计计 实实 验验 室

17、室SensorManagerSensorManagerp手机上有多种传感器,是手机的一个特色。多种传感器可作为各应用系统的输入或其它控制之用,使手机的应用别于PC,也更有趣。p常见有:n重力传感器n加速度传感器n亮度传感器n距离传感器n。2010.06.16浙浙 江江 大大 学学 软软 硬硬 件件 协协 同同 设设 计计 实实 验验 室室SensorManagerSensorManagerpSensorManager是传感器框架核心,调用Context.getSystemService获得SensorManager对象。/创建SensorManager对象sensorManager=(Sens

18、orManager)getSystemService(Context.SENSOR_SERVICE);2010.06.17浙浙 江江 大大 学学 软软 硬硬 件件 协协 同同 设设 计计 实实 验验 室室SensorManagerSensorManagerp负责管理设备上可用传感器,支持多种传感器nTYPE_ALLnTYPE_ACCELEROMETERnTYPE_GYROSCOPEnTYPE_LIGHTnTYPE_MAGNETIC_FIELDnTYPE_ORIENTATIONnTYPE_PRESSUREnTYPE_PROXIMITYnTYPE_TEMPERATURE2010.06.18浙浙 江江 大大 学学 软软 硬硬 件件 协协 同同 设设 计计 实实 验验 室室监听传感器事件监听传感器事件pregisterListenerp当传感器发生变化时,onSensorChanged()被调用。/监听设备变化sensorManager.registerListener(Sensor

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论