package com.haicaojie.android.util;
|
|
import android.content.ComponentName;
|
import android.content.ContentValues;
|
import android.content.Context;
|
import android.content.DialogInterface;
|
import android.content.Intent;
|
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageManager;
|
import android.database.Cursor;
|
import android.graphics.Bitmap;
|
import android.graphics.BitmapFactory;
|
import android.net.Uri;
|
import android.os.Build;
|
import android.provider.MediaStore;
|
import android.util.Log;
|
|
import com.lcjian.lcjianlibrary.BuildConfig;
|
import com.lcjian.library.util.MobileUtil;
|
import com.lcjian.library.util.SingleToast;
|
|
import java.io.File;
|
import java.io.FileOutputStream;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.net.HttpURLConnection;
|
import java.net.URL;
|
import java.util.List;
|
|
import static com.umeng.socialize.utils.ContextUtil.getPackageName;
|
|
/**
|
* Created by Administrator on 2017/11/15.
|
*/
|
public class Tools {
|
|
public static String IMAGE_NAME = "iv_share_";
|
public static int i = 0;
|
|
//根据网络图片url路径保存到本地
|
public static final File saveImageToSdCard(Context context, String image) {
|
boolean success = false;
|
File file = null;
|
try {
|
file = createStableImageFile(context);
|
Bitmap bitmap = null;
|
URL url = new URL(image);
|
HttpURLConnection conn = null;
|
conn = (HttpURLConnection) url.openConnection();
|
InputStream is = null;
|
is = conn.getInputStream();
|
bitmap = BitmapFactory.decodeStream(is);
|
|
FileOutputStream outStream;
|
|
outStream = new FileOutputStream(file);
|
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream);
|
outStream.flush();
|
outStream.close();
|
success = true;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
if (success) {
|
return file;
|
} else {
|
return null;
|
}
|
}
|
|
//创建本地保存路径
|
public static File createStableImageFile(Context context) throws IOException {
|
i++;
|
String imageFileName = IMAGE_NAME + i + ".png";
|
String path = context.getExternalCacheDir().getPath() + "/share";
|
File storageDir = new File(path);
|
if (!storageDir.exists()) {
|
storageDir.mkdir();
|
}
|
File image = new File(storageDir, imageFileName);
|
return image;
|
}
|
|
//判断是否安装了微信
|
public static int isWeixinAvilible(final Context context) {
|
int returnNum;
|
final PackageManager packageManager = context.getPackageManager();// 获取packagemanager
|
List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);// 获取所有已安装程序的包信息
|
if (pinfo != null) {
|
boolean isReadSuc = false;
|
for (int i = 0; i < pinfo.size(); i++) {
|
String pn = pinfo.get(i).packageName;
|
if (pn.equals("com.yeshi.ec.rebate")) {
|
isReadSuc = true;
|
}
|
}
|
if (isReadSuc) {
|
boolean isHave = false;
|
for (int i = 0; i < pinfo.size(); i++) {
|
String pn = pinfo.get(i).packageName;
|
if (pn.equals("com.tencent.mm")) {
|
isHave = true;
|
}
|
}
|
if (isHave) {
|
returnNum = 0;
|
} else {
|
returnNum = 2;
|
}
|
} else {
|
returnNum = 1;
|
}
|
} else {
|
returnNum = 1;
|
}
|
if (returnNum == 1 && (MobileUtil.getSystem().equals(MobileUtil.SYS_MIUI) || MobileUtil.getSystem().equals(MobileUtil.SYS_EMUI) || MobileUtil.getSystem().equals(MobileUtil.SYS_FLYME))) {
|
openAppListPermission(context);
|
}
|
return returnNum;
|
}
|
|
//判断是否安装了sina
|
public static int isSinaAvilible(Context context) {
|
final PackageManager packageManager = context.getPackageManager();// 获取packagemanager
|
List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);// 获取所有已安装程序的包信息
|
int returnNum = 2;
|
if (pinfo != null) {
|
boolean isReadSuc = false;
|
for (int i = 0; i < pinfo.size(); i++) {
|
String pn = pinfo.get(i).packageName;
|
Log.e("packageName", pn);
|
if (pn.equals("com.yeshi.ec.rebate")) {
|
isReadSuc = true;
|
}
|
}
|
if (isReadSuc) {
|
boolean isHave = false;
|
for (int i = 0; i < pinfo.size(); i++) {
|
String pn = pinfo.get(i).packageName;
|
if (pn.equals("com.sina.weibo")) {
|
isHave = true;
|
}
|
}
|
if (isHave) {
|
returnNum = 0;
|
} else {
|
returnNum = 2;
|
}
|
} else {
|
returnNum = 1;
|
}
|
} else {
|
returnNum = 1;
|
}
|
// String sys = MobileUtil.getSystem();
|
// SingleToast.showToast(context, "返回值:" + returnNum + "---" + sys);
|
if (returnNum == 1 && (MobileUtil.getSystem().equals(MobileUtil.SYS_MIUI) || MobileUtil.getSystem().equals(MobileUtil.SYS_EMUI) || MobileUtil.getSystem().equals(MobileUtil.SYS_FLYME))) {
|
openAppListPermission(context);
|
}
|
return returnNum;
|
}
|
|
//判断是否安装了QQ
|
public static int isQQAvilible(Context context) {
|
final PackageManager packageManager = context.getPackageManager();// 获取packagemanager
|
List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);// 获取所有已安装程序的包信息
|
int returnNum = 2;
|
if (pinfo != null) {
|
boolean isReadSuc = false;
|
for (int i = 0; i < pinfo.size(); i++) {
|
String pn = pinfo.get(i).packageName;
|
if (!pn.contains("com.huawei"))
|
Log.e("packageName", pn);
|
if (pn.equals("com.yeshi.ec.rebate")) {
|
isReadSuc = true;
|
}
|
}
|
if (isReadSuc) {
|
boolean isHave = false;
|
for (int i = 0; i < pinfo.size(); i++) {
|
String pn = pinfo.get(i).packageName;
|
if (pn.equals("com.tencent.mobileqq")) {
|
isHave = true;
|
}
|
}
|
if (isHave) {
|
returnNum = 0;
|
} else {
|
returnNum = 2;
|
}
|
} else {
|
returnNum = 1;
|
}
|
} else {
|
returnNum = 1;
|
}
|
if (returnNum == 1 && (MobileUtil.getSystem().equals(MobileUtil.SYS_MIUI) || MobileUtil.getSystem().equals(MobileUtil.SYS_EMUI) || MobileUtil.getSystem().equals(MobileUtil.SYS_FLYME))) {
|
openAppListPermission(context);
|
}
|
return returnNum;
|
}
|
|
public static void openAppListPermission(final Context context) {
|
UnbindDialog.Builder builder = new UnbindDialog.Builder(context);
|
builder.setMessage("需要检测是否安装微信,请打开【读取应用列表】权限")
|
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialogInterface, int i) {
|
dialogInterface.dismiss();
|
}
|
}).setPositiveButton("确认", new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialogInterface, int i) {
|
dialogInterface.dismiss();
|
if (MobileUtil.getSystem().equals(MobileUtil.SYS_MIUI)) {
|
gotoMiuiPermission(context);
|
} else if (MobileUtil.getSystem().equals(MobileUtil.SYS_EMUI)) {
|
gotoHuaweiPermission(context);
|
} else if (MobileUtil.getSystem().equals(MobileUtil.SYS_FLYME)) {
|
gotoMeizuPermission(context);
|
}
|
// context.startActivity(getAppDetailSettingIntent());
|
}
|
}).create().show();
|
}
|
|
/**
|
* 跳转到miui的权限管理页面
|
*/
|
public static void gotoMiuiPermission(Context context) {
|
try { // MIUI 8,9
|
Intent localIntent = new Intent("miui.intent.action.APP_PERM_EDITOR");
|
localIntent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.PermissionsEditorActivity");
|
localIntent.putExtra("extra_pkgname", context.getPackageName());
|
context.startActivity(localIntent);
|
} catch (Exception e) {
|
try { // MIUI 5/6/7
|
Intent localIntent = new Intent("miui.intent.action.APP_PERM_EDITOR");
|
localIntent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.AppPermissionsEditorActivity");
|
localIntent.putExtra("extra_pkgname", context.getPackageName());
|
context.startActivity(localIntent);
|
} catch (Exception e1) { // 否则跳转到应用详情
|
// gotoHuaweiPermission(context);
|
context.startActivity(getAppDetailSettingIntent());
|
}
|
}
|
}
|
|
/**
|
* 跳转到魅族的权限管理系统
|
*/
|
private static void gotoMeizuPermission(Context context) {
|
Intent intent = new Intent("com.meizu.safe.security.SHOW_APPSEC");
|
intent.addCategory(Intent.CATEGORY_DEFAULT);
|
intent.putExtra("packageName", BuildConfig.APPLICATION_ID);
|
try {
|
context.startActivity(intent);
|
} catch (Exception e) {
|
e.printStackTrace();
|
context.startActivity(getAppDetailSettingIntent());
|
}
|
}
|
|
/**
|
* 华为的权限管理页面
|
*/
|
private static void gotoHuaweiPermission(Context context) {
|
try {
|
Intent intent = new Intent();
|
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
ComponentName comp = new ComponentName("com.huawei.systemmanager", "com.huawei.permissionmanager.ui.MainActivity");//华为权限管理
|
intent.setComponent(comp);
|
context.startActivity(intent);
|
} catch (Exception e) {
|
e.printStackTrace();
|
context.startActivity(getAppDetailSettingIntent());
|
}
|
}
|
|
/**
|
* 获取应用详情页面intent
|
*
|
* @return
|
*/
|
private static Intent getAppDetailSettingIntent() {
|
Intent localIntent = new Intent();
|
localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
|
localIntent.setData(Uri.fromParts("package", getPackageName(), null));
|
return localIntent;
|
}
|
|
/**
|
* @param context
|
* @param imageFile
|
* @return content Uri
|
*/
|
public static Uri getImageContentUri(Context context, File imageFile) {
|
String filePath = imageFile.getAbsolutePath();
|
Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
|
new String[]{MediaStore.Images.Media._ID}, MediaStore.Images.Media.DATA + "=? ",
|
new String[]{filePath}, null);
|
if (cursor != null && cursor.moveToFirst()) {
|
int id = cursor.getInt(cursor.getColumnIndex(MediaStore.MediaColumns._ID));
|
Uri baseUri = Uri.parse("content://media/external/images/media");
|
return Uri.withAppendedPath(baseUri, "" + id);
|
} else {
|
if (imageFile.exists()) {
|
ContentValues values = new ContentValues();
|
values.put(MediaStore.Images.Media.DATA, filePath);
|
return context.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
|
} else {
|
return null;
|
}
|
}
|
}
|
}
|