完成了拨号功能,接下来要做呼叫功能!
前面的例子中仅仅只是一个拨号,如果要打电话还要再按一下呼叫键,这个例子中主要是学习Intents及基于它的全新的应用编写方法。
如前面的步骤一下,传一个CALL_ACTION的Intent就可以完成呼叫了。代码如下:
Intent CallIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:7788250"));
startActivity(CallIntent);
运行一下,结果让人很蛋疼,
不仅报了个错,还错了不知道是什么东西的错,只是说出了异常,怎么后面的版本都不告诉咱这是哪错了?
还好这个问题早就是已知的了,是权限问题,总不能让是个应用程序就能乱打电话吧,这样估计用Android的人每月都能有一堆类似声讯电话的通话费了。
在AndroidManifest.xml中加上这个节点,
<uses-permission android:name="android.permission.CALL_PHONE" />
需要注意的是在<mainfest>这个节点下。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jjie"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.CALL_PHONE">
</uses-permission>
</manifest>
再运行一下:
成功的拨出了号码!
在这个例子中可以看出Android的一些Action需要给予一定的权限。这些都是关系到一些重要的业务。
大多数的Activity只要设置一个适当的权限就可以运行了,但有一些系统中,需要象证书一样要有个认证才能运行。下面举几个权限,需要的时候请去官方文档查找。
● 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_STATE
● SET_PREFERRED_APPLICATIONS
● DELETE_PACKAGES
● SIGNAL_PERSISTENT_PROCESSES
● DUMP
● SYSTEM_ALERT_WINDOW
● FOTA_UPDATE
● WRITE_CONTACTS
● GET_TASKS
● WRITE_SETTINGS
● INSTALL_PACKAGES
通过权限与Intents的比较,可以发现大多数的Intent都可以找到相应的权限。
至此,虽然还没有什么象样的东西做出来,但其中最常用的一些已经在了。话说好的开端是成功的一半,对我们来说已经完成Android学习的一半,也度过了最难的时期了,接下来网上搜搜,API查查就完了。
接下来还有按钮,菜单,视图这些东西是一本入门书中必备的东西,随便看下就行了。