从这篇文章开始,我将整理Android中常见的功能代码实现。这是该系列的第一篇文章。
这篇文章讲解的包括拨打电话、跳转至拨号界面、发送短信、判断当前设备是否为手机。
一、拨打电话
/**
* 拨打电话
* @param context 上下文对象
* @param phoneNumber 电话号码
*/
public static void call(Context context, String phoneNumber) {
context.startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber)));
}
这里有一个东西要注意,由于Android 6.0以后,Google引入了运行时权限,而拨打电话属于Dangerous Permission,所以需要在程序中加上对运行时权限的处理。
二、跳转至拨号界面
/**
* 跳转至拨号界面
* @param context 上下文对象
* @param phoneNumber 电话号码
*/
public static void callDial(Context context, String phoneNumber) {
context.startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phoneNumber)));
}
三、发送短信
/**
* 发送短信
* @param context 上下文对象
* @param phoneNumber 电话号码
* @param content 短信内容
*/
public void sendSms(Context context, String phoneNumber, String content) {
Uri uri = Uri.parse("smsto:" + (TextUtils.isEmpty(phoneNumber)?"":phoneNumber));
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
intent.putExtra("sms_body", TextUtils.isEmpty(content)?"":content);
context.startActivity(intent);
}
四、判断当前设备是否为手机
/**
* 判断当前设备是否为手机
* @param context
* @return true表示为手机 false表示不为手机(比如说平板)
*/
public boolean isPhone(Context context) {
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
if (telephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE) {
return false;
}
return true;
}
简单分析一下:这里主要用到TelephonyManager。首先通过获取系统服务,然后得到TelephonyManager。接着通过telephonyManager.getPhoneType()获取phone的类型,如果为PHONE_TYPE_NONE,则表示不是手机。