零星记录(一)

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

时间: 2024-10-14 03:39:36

零星记录(一)的相关文章

mtd零星记录

查看Flash分区情况: [email protected]-WRT:~# cat /proc/mtd dev: size erasesize name mtd0: 00020000 00010000 "RedBoot" mtd1: 007c0000 00010000 "linux" mtd2: 00270000 00010000 "rootfs" mtd3: 00410000 00010000 "ddwrt" mtd4: 0

Redmine开发帮助

这里先零星记录二次开发用得上的知识点: 1.获取自定义内容,参考此文: Every customizable redmine object has custom_field_values field, that value is array ofCustomFieldValue. CustomFieldValue contains current value, custom field description and customized object. Needed values i read

2星|《巴菲特致股东的信》:标题党,实际是1996年一次研讨会的发言记录,没有致股东的信

巴菲特致股东的信 : 权威修订版 纸书和kindle电子书的副标题不一样,纸书估计是巴菲特致股东的信加上1996年的这次研讨会的记录,kindle电子书只有1996年巴菲特和芒格参加的一次研讨会的记录和注释. 以下是书中一些内容的摘要,大部分内容是从<编者的话>一章中摘抄的,#是kindle电子书中的页码: 1:但巴菲特回应说,伯克希尔从未拟订过战略规划.由于没有规划,所以巴菲特可以在第一时间为伯克希尔抓住机会.相反,如果需要董事会讨论后才能做出决策,很可能会跟机会失之交臂.#118 2:巴菲

老男孩Linux运维第41期20170917开班第四周学习重点课堂记录

第1章 必知必会文件 配置文件位置 该文件作用 /etc/sysconfig/network-scripts/ifcfg-eth0 第一块网卡的配置文件 同setup中的network /etc/resolv.conf 客户端DNS配置文件,优先级低于网卡配置文件 /etc/hosts 主要作用是定义IP地址和主机名的映射关系(域名解析),是一个映射IP地址和主机名的规定 /etc/sysconfig/network 用于配置hostname和networking /etc/fstab 开机自动

SSISDB8:查看SSISDB记录Package执行的消息

在执行Package时,SSISDB都会创建唯一的OperationID 和 ExecutionID,标识对package执行的操作和执行实例(Execution Instance),并记录operation message,统计executable的执行时间,便于developers 优化package的设计,对package进行故障排除. 一,在package发生错误时,查看失败的Executable An executable is a task or container that you

使用插件bootstrap-table实现表格记录的查询、分页、排序等处理

在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有名的开源表格插件,在很多项目中广泛的应用.Bootstrap-table插件提供了非常丰富的属性设置,可以实现查询.分页.排序.复选框.设置显示列.Card view视图.主从表显示.合并列.国际化处理等处理功能,而且该插件同时也提供了一些不错的扩展功能,如移动行.移动列位置等一些特殊的功能,插件可

Git 使用记录

在win7平台已经安装好了git的情况下: 1,Git 本地仓库建立与使用步骤: (2)新建立文件夹: $ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit (1)引入git: 通过git init命令把这个目录变成Git可以管理的仓库: $ git init Initialized empty Git repository in /Users/michael/learngit/.git/ (3)添加文件:git add fil

前端学HTTP之日志记录

前面的话 几乎所有的服务器和代理都会记录下它们所处理的HTTP事务摘要.这么做出于一系列的原因:跟踪使用情况.安全性.计费.错误检测等等.本文将谥介绍日志记录 记录内容 大多数情况下,日志的记录出于两种原因:査找服务器或代理中存在的问题(比如,哪些请求失败了),或者是生成Web站点访问方式的统计信息.统计数据对市场营销.计费和容量规划(比如,决定是否需要增加服务器或带宽)都非常有用 可以把一个HTTP事务中所有的首部都记录下来,但对每天要处理数百万个事务的服务器和代理来说,这些数据的体积超大,很

ClientDataSet中动态添加计算字段并用计算字段显示记录的UpdateStatus

ClientDataSet中每条记录都有UpdateStatus=(usUnmodified, usModified, usInserted, usDeleted)记录该条数据是修改的,删除的,还是新增的等.有时候我们只想看修改的或新增的或删除的就可能用到这一属性.下图用计算字段显示UpdateStatus状态. ********************************************************************************************