Android应用开发之调用系统Activity涉及的授权问题

调用系统Activity时可能会出现一些问题,使我们的程序不能运行,这时我们要考虑是不是没有获得权限,而获得权限的代码很简单。

在AndroidManifest.xml里面添加<uses-permission>标签即可。

例如我们需要直接调用系统Activity拨打电话,那么除了以下代码:

public class CallDear extends Activity {

  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_call_dear);

    //调用直接拨号Activity
    Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:18674385210"));
    startActivity(calllIntent);

    //Activity跳转时用到的跳转特效,这里用的fade 渐入渐出。

    overridePendingTransition(R.anim.fade, R.anim.fade); 
}

还需要在AndroidManifest.xml里面添加<uses-permission>标签,如下(黑体部分):

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.calldear"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".CallDear"
android:label="@string/title_activity_call_dear" >
<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>

没有授权,是不可以直接拨打电话的。添加了授权的代码后,在用户安装程序时将会询问是否允许该操作。

原文地址:https://www.cnblogs.com/ikarl/p/2797265.html