现在的位置: 首页 > Training
0℃
为了能安全地访问在线服务,必须要验证用户的身份,即需要用户提供证明自己身份的认证信息。 如果一个应用程序要访问第三方服务提供商的数据,那么安全验证问题更加复杂,此时不仅需要验证用户的身份信息,还要验证应用程序的信息,以此来保证应用程序只能访问获得了用户授权的那部分服务和数据。 目前用来解决应用程序和第三方服务提供商授权认证的标准协议是 OAuth2,它本身只提供了一个值,即授权令牌(auth token)。 它代表了用户的授权和应用程序按照用户授权的范围能够进行的数据访问与操作。 本节课展示...
阅读全文
1℃
2012年01月01日 移动开发 ⁄ 被围观 2,565+
每个人都喜欢自己的名字被他人记住,同样地,如果想让您的应用程序更人性化,为不同的用户提供不同的用户体验,以及自定义配置,那么就需要记录用户的个人信息。当用户从旧的设备更新到新的设备,或者从一台设备切换到另一台设备上面(例如用户拥有一台平板电脑和手机,并且经常在两者之间切换),您的应用应当可以准确识别出用户,那么如何才能区分用户和记录用户信息,并且准确地鉴别用户身份,本文的目的就是要解决上面提到的问题。 对于大多数应用来说, 账户管理器 AccountManager 就足够了,利用其提供的AP...
阅读全文
0℃
最简单的监测设备状态变更的做法就是为每一个状态的变化都创建一个对应的 BroadcastReceiver ,然后在 BroadcastReceiver 的实现代码中,取得设备当前的状态来调整应用程序的运行任务。 但是这样做有一个缺点就是可能您的应用程序会过于频繁的唤醒设备来处理状态的变更,这往往不是您期待的结果。 一个更好的解决办法就是在程序的运行过程中动态的启用和禁用广播事件接收器,这样您就可以只启用目前最关心的广播事件接听器,而禁用掉现在并不需要的事件接听器。 动态切换和级联事件接器 您可以使用 PackageManage...
阅读全文
0℃
设定周期性的闹铃提醒和后台服务,最常见的用途是定期更新应用程序的数据,从互联网上下载资源,缓存数据或者执行长时间的下载任务。但是如果设备当前没有连接到网络,或者是网络状况不稳定,连接太慢,不能正常完成数据的下载任务,那么此时仍需要唤醒设备来更新数据么? 您可以通过 ConnectivityManager 来检查设备当前是否连接到了网络,如果已连接,具体是连接到哪种类型的网络。 检测网络连接状态 如果设备当前没有连接到任何网络,那么您的应用程序也就没有必要安排定时的数据更新任务。 示例代码展示了如...
阅读全文
0℃
Android 设备可以接在不同类型的 Dock 底座中,其中包括车载的,家用的,以及数字的和模拟的。许多 Dock 基座都能为接在其上面的设备供电,所以,“dock-state”(Dock状态)也通常是接入设备的充电状态。 Dock 状态的变化如何影响您应用程序的服务更新速度取决于您应用程序的设计。假如是一个获取体育赛况的应用程序,那么在 “desktop dock” 状态时,可以提高其数据的更新频率,而当在 “car docked” 状态时,可以完全禁用数据的更新。相反,假如该应用程序是用来获取当前交通路况的,那么就应当在“car docked” 状...
阅读全文
0℃
通过检查设备当前的电池电量和充电状态,然后适当改变后台服务的更新频率,可以有效降低电量的消耗。所以您的应用程序的更新频率也应当根据设备当前的电池电量和充电状态来进行动态调整。 通常情况下,当设备在充电的过程中,可以提高应用程序的数据更新频率,因为此时电池电量的消耗相较于充电的过程耗费很小,基本可以忽略。相反,如果电池是在正常的使用过程中,那么应当合理调整应用程序的更新频率,不能更新太频繁,这样有助于延长电池的使用寿命。 同时,应用程序应当一直监视设备电量的状态变化,在设备电...
阅读全文
0℃
2011年12月22日 移动开发 ⁄ 被围观 2,193+
Android 系统通常支持多种音频设备,常见的有手机内置扬声器,插孔式有线耳机,蓝牙 A2DP(蓝牙立体声音频传输规范(A2DP))设备。 获取当前正在播放音频的硬件信息 使用不同的硬件设备可能会影响您应用程序的设计方式,您可以通过 AudioManager 来查询当前正在播放音频的硬件设备信息,是内置扬声器,还是有线耳机,或者是蓝牙设备。 示例代码如下: if (isBluetoothA2dpOn()) { // Adjust output for Bluetooth. 蓝牙设备 } else if (isSpeakerphoneOn()) { // Adjust output for Speakerphone. 内置扬...
阅读全文
0℃
2011年12月21日 移动开发 ⁄ 被围观 2,385+
因为系统中可能会有多个应用程序会播放音频,所以需要考虑他们之间该如何交互,为了避免多个应用程序同时播放音乐,Android 系统使用音频焦点来进行统一管理,即只有获得了音频焦点的应用程序才可以播放音乐。 您的应用程序在开始播放音频文件前,首先应该请求获得音频焦点,并且应该同时注册监听音频焦点的丢失通知,即如果音频焦点被系统或其他的应用程序抢占时,您的应用程序可以做出合适的响应。 获取音频焦点 您的应用程序在开始播放任何音频之前,首先应该持有流的音频焦点。 可以通过调用 requestAudioFoc...
阅读全文
×
腾讯微博