码迷,mamicode.com
首页 > 其他好文 > 详细

零星记录(一)

时间:2015-06-25 10:22:12      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

1. 多个PendingIntent时如何区分不同的Intent?

调用下面两个函数可以获得对应的PendingIntent,如果requestCode相同,获得的PendingIntent里的intent总是最后一个。所以要想区分,需要指定不同的requestCode.

public static PendingIntent getActivity(Context ontext, int requestCode, Intent intent, int flags);
public static PendingIntent getService(Context ontext, int requestCode,  Intent intent, int flags);

2. 使布局大小产生变化时,伴随着动画效果:

<LinearLayout android:id="@+id/container"
    android:animateLayoutChanges="true"   // 设置layout的该属性
    ...
/>

3. FrameLayout使用注意

    FrameLayout的子控件默认是层层叠加在左上角的,若要控制各个子控件的位置布局,可以在子控件及FrameLayout之间加一层LinearLayout或RelativeLayout,并把这两个Layout的Params设置为FILL_PARENT,然后设置子控件在LinearLayout或RelativeLayout中的位置即可。

4. 自定义permission

在android系统的安全模型中,如果应用需要执行某些操作,就需要声明使用这个操作对应的权限。(在manifest文件中 添加<uses-permission>标记)

app可以自定义属于自己的permission 或属于开发者使用的同一个签名的permission。定义一个permission 就是在menifest文件中添加一个permission标签:
<permission android:description="string resource"  
            android:icon="drawable resource"  
            android:label="string resource"  
            android:name="string"  
            android:permissionGroup="string"  
            android:protectionLevel=["normal" | "dangerous" |   
                                     "signature" | "signatureOrSystem"] />

参数说明:
android:description :对权限的描述,一般是两句话,第一句话描述这个权限所针对的操作,第二句话告诉用户授予app这个权限会带来的后果
android:label: 对权限的一个简短描述
android:name :权限的唯一标识,一般都是使用包名加权限名
android:permissionGroup: 权限所属权限组的名称
android:protectionLevel: 权限的等级:
    normal :低风险权限,在安装的时候,系统会自动授予权限给 application,不会提示用户
    dangerous :高风险权限,系统在安装声明此类权限的app时会提示用户
    signature :签名权限,权限表明的操作只针对使用同一个证书签名的app开放
    signatureOrSystem :与signature类似,只是增加了rom中自带的app的声明


例子:指定一个BroadcastReceiver的权限,达到目的:具有相同签名的APP发的broadcast才能被reveiver收到。
假设创建两个app, appA, appB, appA注册了一个BroadcastReceiver,appB发送广播。

1. appA的menifest文件中声明permission:
<permission android:name="settings.permission.DHCP_VENDOR"
                  android:protectionLevel="signature" >

注册Broadcast Receiver,并指定了给当前Receiver发送消息方需要的权限:
<receiver android:name=".SettingsReceiver"
          android:permission="gaia.settings.permission.DHCP_VENDOR">
          <demand-filter>
              <action gaia:name="settings.demand.action.DHCP_VENDOR" />
          </demand-filter>
</receiver>

2. appB的menifest文件中声明使用指定的权限:
    <uses-permission android:name="settings.permission.DHCP_VENDOR" />

假设appA与appB使用同一证书签名,这样appB给appA发送消息,appA就可以收到;若其它app未声明相应权限或者与appA签名不一样,appA是收不到的。

    用于安全相关控制。参考:http://berdy.iteye.com/blog/1782854

零星记录(一)

标签:

原文地址:http://www.cnblogs.com/Jackwen/p/4386802.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!