编辑活动许可 第七章(5)
大多数的Activity Action Intents是在需要许可在Android允许它行动之前的目录内的。和大多数的系统一样,Android只是需要确保有资格的活动来执行在它们之外的活动。这儿是许可可以使用的活动:
● ACCESS_ASSISTED_GPS | ● INTERNAL_SYSTEM_WINDOW |
● ACCESS_CELL_ID | ● RAISED_THREAD_PRIORITY |
● ACCESS_GPS | ● READ_CONTACTS |
● ACCESS_LOCATION | ● READ_FRAME_BUFFER |
● ACCESS_SURFACE_FLINGER | ● RECEIVE_BOOT_COMPLETED |
● ADD_SYSTEM_SERVICE | ● RECEIVE_SMS |
● BROADCAST_PACKAGE_REMOVED | ● RECEIVE_WAP_PUSH |
● BROADCAST_STICKY | ● RUN_INSTRUMENTATION |
● CALL_PHONE | ● SET_ACTIVITY_WATCHER |
● CHANGE_COMPONENT_ENABLED_ | ● SET_PREFERRED_ |
● DELETE_PACKAGES | ● SIGNAL_PERSISTENT_ |
● DUMP | ● SYSTEM_ALERT_WINDOW |
● FOTA_UPDATE | ● WRITE_CONTACTS |
● GET_TASKS | ● WRITE_SETTINGS |
● INSTALL_PACKAGES |
|
把这个许可列表和表格7-1做比较你应当发现大多数的Intent可以匹配。CALL_ACTION也不例外。你需要赋值CALL_PHONE活动许可来执行Intent。
要赋值相关的许可到活动,第一,你需要知道需要赋值哪一种许可。当前的例子是使用拨号盘活动。进入拨号盘活动是由CALL_PHONE许可管理的。通过赋值这个许可到你的活动,Android将允许你的Intent启动拨号盘活动。
怎么增加许可到活动中呢?你需要编辑活动的Manifest。如果你使用Eclipse,双击AndroidManifest.xml文件,打开Android Manifest窗口,如下图(略)。
要编辑活动的许可,点击Permission链接。会把你带到Manifest Permissions窗口,如下图(略)。这个窗口列出了当前赋值到你活动的许可。假定你在一个新的项目中,还没有任何的赋值。因此,点击增加按钮来开始进程。在对话框中,选择使用许可并且点击OK。
回到Android Manifest Permission窗口,在名称的下拉框中,选择android.permission.CALL_PHONE,如下所示(略)。这样就会增加CALL_PHONE许可到你的活动中。现在,你已经增加了CALL_PHONE许可,看看AndroidManifest.xml文件。它应当和下面相类似:
<?xml version="1.0" encoding="utf-8"?> |
最有意思的一行实在文件的最后:
<uses-permission android:name="android.permission.CALL_PHONE"> |
这行代码是由Androd plugin for Eclipse增加的。如果你需要,你可以直接编辑AndroidManifefst.xml文件来赋值。但是,如果有多次情况当你不确定需要增加哪一种许可,或者什么语法来增加,你可以使用Manifest的向导。
现在许可已经到位了,重新编译并且允许你的活动。你的模拟器应当可以呼叫电话号码了,如下图(略)。
你创建的活动已经使用了一个Intent来启动设备的呼叫活动并且呼叫号码555-1212。这个演示了使用Intent的好处。总而言之,这个应用程序实际的为你做了一些事情。那就是说,启动一个带有电话号码代码的活动,只是打一个电话?在下一节中,你会通过增加一个按钮来启动Call_Action的Intent,增加一个文本框来运行用户输入他们选择的电话号码来更多的制作应用程序。
修改AndroidPhoneDialer