天天看点

Android开发常用代码片段(一)Android开发常用代码片段(一)

Android开发常用代码片段(一)

前一篇:没有啦

后一篇:Android开发常用代码片段(二)

文章目录

  • Android开发常用代码片段(一)
    • 拨打电话
    • 跳转至拨号界面
    • 发送短信
    • 唤醒屏幕并解锁
    • 判断当前App处于前台还是后台状态

拨打电话

/**
 * 拨打电话
 * @param context 上下文
 * @param phoneNumber 电话号码
 */
private static void call(Context context, String phoneNumber) {
    context.startActivity( new Intent(Intent.ACTION_CALL, Uri.parse( "tel:" + phoneNumber)));
}
           

【注】该功能需要以下权限:

  1. 拨打电话:android.permission.CALL_PHONE

跳转至拨号界面

/**
 * 跳转至拨号界面
 * @param context 上下文
 * @param phoneNumber 电话号码
 */
private static void callDial(Context context, String phoneNumber) {
    context.startActivity( new Intent(Intent.ACTION_DIAL, Uri.parse( "tel:" + phoneNumber)));
}
           

【注】该功能需要以下权限:

  1. 拨打电话:android.permission.CALL_PHONE

发送短信

/**
 * 发送短信
 * @param context 上下文
 * @param phoneNumber 电话号码
 * @param content 短信内容
 */
private static 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 上下文
 */
private static void wakeUpAndUnlock(Context context){
    KeyguardManager km= (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
    KeyguardManager.KeyguardLock kl = km.newKeyguardLock( "unLock" );

    //解锁
    kl.disableKeyguard();

    //获取电源管理器对象
    PowerManager pm=(PowerManager) context.getSystemService(Context.POWER_SERVICE);

    //获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是LogCat里用的Tag
    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK, "bright" );

    //点亮屏幕
    wl.acquire();

    //释放
    wl.release();
}
           

【注】该功能需要以下权限:

  1. 允许程序禁用键盘锁:android.permission.DISABLE_KEYGUARD
  2. 唤醒锁:android.permission.WAKE_LOCK

判断当前App处于前台还是后台状态

/**
 * 判断当前App处于前台还是后台状态
 *
 * @param context 上下文
 * @return 判断结果
 */
private static boolean isApplicationBackground(final Context context) {
    ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);

    @SuppressWarnings("deprecation")
    List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(1);

    if (!tasks.isEmpty()) {
        ComponentName topActivity = tasks.get(0).topActivity;
        if (!topActivity.getPackageName().equals(context.getPackageName())) {
            return true;
        }
    }
    return false;
}
           

【注】该功能需要以下权限:

  1. 任务状态:android.permission.GET_TASKS