package forezp.com.douyalibrary.utils;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.media.MediaPlayer;
import android.net.Uri;
import android.provider.MediaStore;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import java.io.File;
import java.text.ParseException;
import java.text.SimpleDateFormat;
/**获取系统版本、获取音频时间、从uri获取path
* Created by b508a on 2015/12/28.
*/
public class CommonUtils {
public static String getOsVersion(){
return android.os.Build.VERSION.RELEASE;
}
/**
* 获取UMmeng渠道名
* @param ctx
* @return
*/
public static String getChannelName(Context ctx) {
if (ctx == null) {
return null;
}
String channelName = null;
try {
PackageManager packageManager = ctx.getPackageManager();
if (packageManager != null) {
//注意此处为ApplicationInfo 而不是 ActivityInfo,因为友盟设置的meta-data是在application标签中,而不是某activity标签中,所以用ApplicationInfo
ApplicationInfo applicationInfo = packageManager.getApplicationInfo(ctx.getPackageName(), PackageManager.GET_META_DATA);
if (applicationInfo != null) {
if (applicationInfo.metaData != null) {
channelName = applicationInfo.metaData.getString("UMENG_CHANNEL");
if(TextUtils.isEmpty(channelName)) {//360纯数字 会被当做int
channelName = applicationInfo.metaData.getInt("UMENG_CHANNEL") + "";
}
}
}
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return channelName;
}
/**
* <获取本软件的版本>
*/
public static int getVersionCode(Context context) {
PackageInfo packageInfo = null;
int versionCode = 0;
try {
packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName().toString(), 0);
} catch (Exception e) {
e.printStackTrace();
}
if (null != packageInfo) {
versionCode = packageInfo.versionCode;
}
return versionCode;
}
/**
* <获取本软件的版本>
*
*
*
*/
public static String getVersionName(Context context) {
PackageInfo packageInfo = null;
String versionName = "1.0";
try {
packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName().toString(), 0);
} catch (Exception e) {
e.printStackTrace();
}
if (null != packageInfo) {
versionName = packageInfo.versionName;
}
return versionName;
}
/**
* 从uri获取path,主要用于图片选择返回
* @param context
* @param contentUri
* @return
*/
public static String getRealPathFromURI(Context context, Uri contentUri) {
Cursor cursor = null;
try {
String[] proj = { MediaStore.Images.Media.DATA };
cursor = context.getContentResolver().query(contentUri, proj, null,
null, null);
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} finally {
if (cursor != null) {
cursor.close();
}
}
}
/**
* 获取文件播放时间
* 00:00:20
* @param file
* @return
*/
public static String getMusicTime(Context context, File file){
java.util.Date date;
SimpleDateFormat sy1;
String dateFormat = "error";
try {
sy1 = new SimpleDateFormat("HH:mm:ss");//设置为时分秒的格式
//使用媒体库获取播放时间
MediaPlayer mediaPlayer;
mediaPlayer = MediaPlayer.create(context, Uri.parse(file.toString()));
//使用Date格式化播放时间mediaPlayer.getDuration()
date = sy1.parse("00:00:00");
date.setTime(mediaPlayer.getDuration() + date.getTime());//用消除date.getTime()时区差
dateFormat = sy1.format(date);
mediaPlayer.release();
} catch (ParseException e) {
e.printStackTrace();
}
return dateFormat;
}
/**
* 获取音频文件的时间 毫秒
* @param file
* @return int sencond
*/
public static int getAudioTime(Context context, File file){
int time = 0;
try {
MediaPlayer mediaPlayer;
mediaPlayer = MediaPlayer.create(context, Uri.parse(file.toString()));
time=mediaPlayer.getDuration();
mediaPlayer.release();
} catch (Exception e) {
e.printStackTrace();
}
return time;
}
public static String getDeviceId(Context context){
TelephonyManager telephonyManager =(TelephonyManager)context.getSystemService( Context.TELEPHONY_SERVICE );
return telephonyManager.getDeviceId();
}
}