package ren.solid.library.utils; import android.app.Activity; import android.app.AlertDialog; import android.app.Service; import android.content.ComponentName; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.media.AudioManager; import android.media.MediaPlayer; import android.os.Environment; import android.os.Vibrator; import android.view.inputmethod.InputMethodManager; import java.util.regex.Matcher; import java.util.regex.Pattern; import ren.solid.library.R; /** * Created by _SOLID * Date:2016/5/10 * Time:10:03 */ public class CommonUtils { /** * 是否存在外部存储 * * @return */ public static boolean isExternalStorageExists() { if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { return true; } return false; } public static void hideKeyboard(Activity activity) { try { ((InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE)) .hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } catch (Exception ex) { ex.printStackTrace(); } } /* * 打开设置网络界面 */ public static void setNetwork(final Context context) { // 提示对话框 AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setCancelable(false); try { builder.setTitle("网络设置提示") .setMessage("网络连接不可用,是否进行设置?") .setPositiveButton("设置", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Intent intent = null; // 判断手机系统的版本 即API大于10 就是3.0或以上版本 if (android.os.Build.VERSION.SDK_INT > 10) { intent = new Intent( android.provider.Settings.ACTION_WIRELESS_SETTINGS); } else { intent = new Intent(); ComponentName component = new ComponentName( "com.android.settings", "com.android.settings.WirelessSettings"); intent.setComponent(component); intent.setAction("android.intent.action.VIEW"); } context.startActivity(intent); } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }).show(); } catch (Exception e) { e.printStackTrace(); } } /** * 调用震动器 * * @param context 调用该方法的Context * @param milliseconds 震动的时长,单位是毫秒 */ public static void vibrate(final Context context, long milliseconds) { Vibrator vib = (Vibrator) context.getSystemService(Service.VIBRATOR_SERVICE); vib.vibrate(milliseconds); } /** * 调用震动器 * * @param context 调用该方法的Context * @param pattern 自定义震动模式 。数组中数字的含义依次是[静止时长,震动时长,静止时长,震动时长。。。]时长的单位是毫秒 * @param isRepeat 是否反复震动,如果是true,反复震动,如果是false,只震动一次 */ public static void vibrate(final Context context, long[] pattern, boolean isRepeat) { Vibrator vib = (Vibrator) context.getSystemService(Service.VIBRATOR_SERVICE); vib.vibrate(pattern, isRepeat ? 1 : -1); } /** * 播放音乐 * * @param context */ public static void playMusic(Context context) { MediaPlayer mp = MediaPlayer.create(context, R.raw.beep); mp.setAudioStreamType(AudioManager.STREAM_MUSIC); mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mediaPlayer) { mediaPlayer.start(); } }); mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mediaPlayer) { mediaPlayer.release(); } }); } }