Android 4.0 Manifest Permission 改动


Android 4.0已于前天也就是2011年10月19日在香港发布了,这对于我们吃这碗饭的人来说可是个里程碑式的大事件,相信大家也在第一时间内拿到了SDK以及android-14 API文档。

虽然Google为了与Samsung的基情,推迟了源代码的发布,但是我们依然可以通过反编译platform里面的android.jar来暂时满足下好奇心。

在新的emulator里面,我们可以看到非常多的改动,尤其是UI的,可以说是彻底换了层皮,那么他的底层代码呢?我们先以Manifest类为例分析下4.0里面permission相对于android-11 API的3.0的改动:

相对于Android3.0,Manifest里面增加了6个permission:

  1. String  ADD_VOICEMAIL   Allows an application to add voicemails into the system.  
  2. String  BIND_TEXT_SERVICE   Must be required by a TextService.  
  3. String  BIND_VPN_SERVICE    Must be required by an VpnService, to ensure that only the system can bind to it.  
  4. String  READ_PROFILE    Allows an application to read the user's personal profile data.  
  5. String  WRITE_PROFILE   Allows an application to write (but not read) the user's personal profile data.  
  6. String  SET_POINTER_SPEED   Allows low-level access to setting the pointer speed.  

ADD_VOICEMAIL 允许使用语音邮件,语音邮件类位于android.provider.VoicemailContract
BIND_TEXT_SERVICE 这个不好说,貌似是类似输入文字时的文字纠错,本机字典还有AutoComplete之类的功能,具体请参考android.service.textservice以及android.view.textservice类,示例程序里有关于它的演示,可弹出一个跟已输入入法类似的框进行对已输入文字的处理
BIND_VPN_SERVICE VPN(Virtual Private Network)虚拟专用网络的支持,难道以后我们可以用手机做网络代理?哈哈,开个玩笑。具体参考android.net.VpnService
READ_PROFILE 难道在2.3上消失的READ_OWNER_DATA/WRITE_OWNER_DATA以另一种名字回来了?让我们拭目以待吧
WRITE_PROFILE
SET_POINTER_SPEED 貌似是可以改变输入设备指针的速度?还是频率?不太清楚


细数从Android2.2 Froyo版本到4.0 ICS的变化大致如下:(+号表示后者比前者增加,-号相反)

Android 2.2-->2.3
+ NFC
- READ_OWNER_DATA
+ SET_ALARM
+ USE_SIP
- WRITE_OWNER_DATA


Android 2.3-->3.0
+ BIND_REMOTEVIEWS




Android 3.0-->4.0
+ ADD_VOICEMAIL
+ BIND_TEXT_SERVICE
+ BIND_VPN_SERVICE
+ READ_PROFILE
+ WRITE_PROFILE
+ SET_POINTER_SPEED

附上简短的说明:

NFC NFC协议的使用权限,Near Field Communication, 近距无线通信,类似红外,蓝牙,Wifi,但是不同于两者,采用独特的信号衰减技术,距离短,带宽大,安全性高,基于RFID,后者多用于信用卡,公交卡,物流标签,具体参考android.nfc
SET_ALARM 允许应用广播Alarm intent给用户
USE_SIP SIP协议的使用权限,SIP协议基于IP,可使用TCP,UDP,与HTTP类似,具体参考android.net.sip
BIND_REMOTEVIEWS 由remoteViewsService请求,可以创造在其他进程中显示的View,具体参考android.widgetRemoteViewsService
READ_OWNER_DATA Android2.2及之前读取用户数据的权限
WRITE_OWNER_DATA Android2.2及之前写入用户数据的权限


兄弟我好不容易做出的总结,希望转载请注明出处,thx                                                                      ----by zhangzh332


附表:


(Android 2.2-->4.0 Permission Change)

+ ADD_VOICEMAIL com.android.voicemail.permission.ADD_VOICEMAIL
+ BIND_REMOTEVIEWS android.permission.BIND_REMOTEVIEWS
+ BIND_TEXT_SERVICE android.permission.BIND_TEXT_SERVICE
+ BIND_VPN_SERVICE android.permission.BIND_VPN_SERVICE
+ NFC android.permission.NFC
- READ_OWNER_DATA android.permission.READ_OWNER_DATA
+ READ_PROFILE android.permission.READ_PROFILE
+ SET_ALARM com.android.alarm.permission.SET_ALARM
+ SET_POINTER_SPEED android.permission.SET_POINTER_SPEED
+ USE_SIP android.permission.USE_SIP
- WRITE_OWNER_DATA android.permission.WRITE_OWNER_DATA
+ WRITE_PROFILE android.permission.WRITE_PROFILE

相关内容