Android 在这里你能找到想要的

全是代码,慢慢看吧!

package com.pp.utils;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.content.res.Configuration;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Parcelable;
import android.provider.MediaStore;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;

//import com.lzy.okserver.download.DownloadInfo;
//import com.lzy.okserver.download.DownloadManager;
//import com.lzy.okserver.listener.DownloadListener;
//import com.rinzz.avatar.db.json.Update;
import com.pp.ui.base.MyApp;

import java.io.File;
import java.io.InputStream;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

/**
 * @author suming
 *         必要要继承BaseApplication才可以使用这个类
 */
public final class A {
    private static ArrayList<PackageInfo> pinfo = new ArrayList<>();

    /**
     * 获取屏幕的长宽(前提是必须继承BaseApplication类)
     *
     * @return
     */
    public static int[] getScreenSize() {
        int[] screens;
        DisplayMetrics dm = MyApp.getApp().getResources().getDisplayMetrics();
        screens = new int[]{dm.widthPixels, dm.heightPixels};
        return screens;
    }

    /**
     * 获取图片的长宽(前提是必须继承BaseApplication类)
     *
     * @param bitmap
     * @param imageView
     * @param screenRadio
     * @return
     */

    public static float[] getBitmapConfiguration(Bitmap bitmap,
                                                 ImageView imageView, float screenRadio) {
        int screenWidth = A.getScreenSize()[0];
        float rawWidth = 0;
        float rawHeight = 0;
        float width = 0;
        float height = 0;
        if (bitmap == null) {
            // rawWidth = sourceWidth;
            // rawHeight = sourceHeigth;
            width = (float) (screenWidth / screenRadio);
            height = (float) width;
            imageView.setScaleType(ScaleType.FIT_XY);
        } else {
            rawWidth = bitmap.getWidth();
            rawHeight = bitmap.getHeight();
            if (rawHeight > 10 * rawWidth) {
                imageView.setScaleType(ScaleType.CENTER);
            } else {
                imageView.setScaleType(ScaleType.FIT_XY);
            }
            float radio = rawHeight / rawWidth;

            width = (float) (screenWidth / screenRadio);
            height = (float) (radio * width);
        }
        return new float[]{width, height};
    }

    /**
     * 得到屏幕的长宽(通过Activity)
     *
     * @param activity
     * @return
     */
    public static int[] getScreenSize(Activity activity) {
        int[] screens;
        // if (Constants.screenWidth > 0) {
        // return screens;
        // }
        DisplayMetrics dm = new DisplayMetrics();
        activity.getWindowManager().getDefaultDisplay().getMetrics(dm);
        screens = new int[]{dm.widthPixels, dm.heightPixels};
        return screens;
    }

    /**
     * 得到系统的版本名
     *
     * @param context
     * @return
     */
    public static String getVersionName(Context context) {
        PackageManager pm = context.getPackageManager();
        try {
            PackageInfo info = pm.getPackageInfo(context.getPackageName(), 0);
            return info.versionName;
        } catch (NameNotFoundException e) {
            e.printStackTrace();
        }
        return null;

    }

    /**
     * 得到系统的版本号
     *
     * @param context
     * @return
     */
    public static int getVersionCode(Context context) {
        try {
            PackageInfo pi = context.getPackageManager().getPackageInfo(
                    context.getPackageName(), 0);
            return pi.versionCode;
        } catch (NameNotFoundException e) {
            e.printStackTrace();
            return 0;
        }
    }

    public static int getVersionCode(Context context, String packageName) {
        try {
            PackageManager manager = context.getPackageManager();
            PackageInfo info = manager.getPackageInfo(packageName, 0);
            return info.versionCode;
        } catch (Exception e) {
            e.printStackTrace();
            return 0;
        }
    }

    /**
     * 得到Android的sdk版本
     *
     * @return
     */
    public static int getSystemVersion() {
        return Build.VERSION.SDK_INT;
    }

    /**
     * 打开外部浏览器
     *
     * @param context
     */
    public static void openBrowser(Context context, String urlText) {
        Intent intent = new Intent();
        intent.setAction("android.intent.action.VIEW");
        Uri url = Uri.parse(urlText);
        intent.setData(url);
        context.startActivity(intent);
    }

    /**
     * 切换全屏模式
     *
     * @param activity Activity
     * @param isFull   是否充满屏幕
     */
    public static void toggleFullScreen(Activity activity, boolean isFull) {
        hideTitleBar(activity);
        Window window = activity.getWindow();
        WindowManager.LayoutParams params = window.getAttributes();
        if (isFull) {
            params.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
            window.setAttributes(params);
            window.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
        } else {
            params.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
            window.setAttributes(params);
            window.clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
        }
    }

    /**
     * 切换全屏模式(充满)
     *
     * @param activity Activity
     */
    public static void setFullScreen(Activity activity) {
        toggleFullScreen(activity, true);
    }

    /**
     * 得到状态栏的高度
     *
     * @param activity Activity
     * @return 系统状态锟斤拷锟侥高讹拷
     */
    public static int getStatusBarHeight(Activity activity) {
        try {
            Class<?> clazz = Class.forName("com.android.internal.R$dimen");
            Object object = clazz.newInstance();
            Field field = clazz.getField("status_bar_height");
            int dpHeight = Integer.parseInt(field.get(object).toString());
            return activity.getResources().getDimensionPixelSize(dpHeight);
        } catch (Exception e1) {
            e1.printStackTrace();
            return 0;
        }
    }


    /**
     * 获得屏幕高度
     *
     * @param context
     * @return
     */
    public static int getScreenHeight(Context context) {
        WindowManager wm = (WindowManager) context
                .getSystemService(Context.WINDOW_SERVICE);
        DisplayMetrics outMetrics = new DisplayMetrics();
        wm.getDefaultDisplay().getMetrics(outMetrics);
        return outMetrics.heightPixels;
    }

    /**
     * 获取屏幕原始尺寸高度,包括虚拟功能键高度
     */
    public static int getDpi(Context context) {
        int dpi = 0;
        WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        Display display = windowManager.getDefaultDisplay();
        DisplayMetrics displayMetrics = new DisplayMetrics();
        @SuppressWarnings("rawtypes")
        Class c;
        try {
            c = Class.forName("android.view.Display");
            @SuppressWarnings("unchecked")
            Method method = c.getMethod("getRealMetrics", DisplayMetrics.class);
            method.invoke(display, displayMetrics);
            dpi = displayMetrics.heightPixels;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return dpi;
    }

    /**
     * 获取虚拟导航栏高度
     */

    public static int getNavigationHeight(Context context) {
        return getDpi(context) - getScreenHeight(context);
    }

    /**
     * 隐藏标题
     *
     * @param activity Activity
     */
    public static void hideTitleBar(Activity activity) {
        activity.requestWindowFeature(Window.FEATURE_NO_TITLE);
    }

    /**
     * 设置竖屏
     *
     * @param activity Activity
     */
    public static void setScreenVertical(Activity activity) {
        activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }

    /**
     * 设置横屏
     *
     * @param activity Activity
     */
    public static void setScreenHorizontal(Activity activity) {
        activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }

    public static boolean isPortraitScreen(Activity activity) {
        Configuration mConfiguration = activity.getResources().getConfiguration(); //获取设置的配置信息
        int ori = mConfiguration.orientation; //获取屏幕方向

        if (ori == mConfiguration.ORIENTATION_LANDSCAPE) {
            //横屏
            return false;
        } else if (ori == mConfiguration.ORIENTATION_PORTRAIT) {
            //竖屏
            return true;
        }
        return true;
    }


    /**
     * 隐藏软键盘
     *
     * @param activity Activity
     */
    public static void hideSoftInput(Activity activity) {
        activity.getWindow().setSoftInputMode(
                WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
    }

    public static void openSoftInput(final View focusingView) {

        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                InputMethodManager imm = (InputMethodManager) focusingView.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.showSoftInput(focusingView, 0);
            }
        }, 500);

    }

    /**
     * 关闭软键盘
     *
     * @param focusingView 设置获取焦点的view
     */
    public static void closeSoftInput(View focusingView) {
        InputMethodManager imm = (InputMethodManager) MyApp.getApp()
                .getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(focusingView.getWindowToken(),
                InputMethodManager.RESULT_UNCHANGED_SHOWN);
    }

    /**
     * 调整软键盘
     *
     * @param activity Activity
     */
    public static void adjustSoftInput(Activity activity) {
        activity.getWindow().setSoftInputMode(
                WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
    }

    public interface MessageFilter {

        String filter(String msg);
    }

    public static MessageFilter msgFilter;

    /**
     * dp转px
     */
    public static int dip2px(Context context, float dpValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dpValue * scale + 0.5f);
    }

    /**
     * dp转px
     */
    public static int dip2px(float dpValue) {
        final float scale = MyApp.getApp().getResources().getDisplayMetrics().density;
        return (int) (dpValue * scale + 0.5f);
    }

    /**
     * px转dp
     */
    public static int px2dip(float pxValue) {
        final float scale = MyApp.getApp().getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }

    /**
     * activity切换动画
     *
     * @param m
     * @param isEnd
     */
    @SuppressLint("NewApi")
    public static void runActivityAnim(Activity m, boolean isEnd,
                                       int closeEnter, int closeExit, int openEnter, int openExit) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.DONUT) {
            if (isEnd) {
                m.overridePendingTransition(closeEnter, closeExit);
            } else {
                m.overridePendingTransition(openEnter, openExit);
            }
        }
    }

    /**
     * 是否添加了快捷方式
     *
     * @return
     */
    public static boolean ifAddShortCut(int shortCutNameId) {
        boolean isInstallShortCut = false;
        ContentResolver cr = MyApp.getApp().getContentResolver();
        String shortCutName = MyApp.getApp().getString(shortCutNameId);
        String authority = "com.android.launcher2.settings";
        Uri uri = Uri
                .parse("content://" + authority + "/favorites?notify=true");
        Cursor c = cr.query(uri, new String[]{"title", "iconResource"},
                "title=?", new String[]{shortCutName}, null);
        if (null != c && c.getCount() > 0) {
            isInstallShortCut = true;
        }
        return isInstallShortCut;
    }

    public static void deleteShortCut(Context context, String cutName) {
        Intent shortcut = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT");
        //快捷方式的名称
        shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, cutName);
        /**删除和创建需要对应才能找到快捷方式并成功删除**/
        Intent intent = new Intent();
        intent.setClass(context, context.getClass());
        intent.setAction("android.intent.action.MAIN");
        intent.addCategory("android.intent.category.LAUNCHER");
        shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);
        context.sendBroadcast(shortcut);
    }


    /**
     * 得到系统唯一标识IMEI
     *
     * @return
     */
    public static String getImei() {
        try {
            TelephonyManager tm = (TelephonyManager) MyApp.getApp()
                    .getSystemService(Context.TELEPHONY_SERVICE);
            return tm.getDeviceId();
        } catch (Exception e) {
            return null;
        }
    }


    /**
     * 获取网卡mac地址
     *
     * @return
     */
    public static String getMac() {
        try {
            //wifi mac地址
            WifiManager wifi = (WifiManager) MyApp.getApp().getSystemService(Context.WIFI_SERVICE);
            WifiInfo info = wifi.getConnectionInfo();
            String wifiMac = info.getMacAddress();
            return wifiMac;
        } catch (Exception e) {
            return null;
        }
    }

    /**
     * 获取网卡ip地址
     *
     * @return
     */
    public static int getIp() {
        try {
            //wifi mac地址
            WifiManager wifi = (WifiManager) MyApp.getApp().getSystemService(Context.WIFI_SERVICE);
            WifiInfo info = wifi.getConnectionInfo();
            int ipAddress = info.getIpAddress();
            return ipAddress;
        } catch (Exception e) {
            return 0;
        }
    }

    /**
     * 获取序列号
     *
     * @return
     */
    public static String getSerialNumber() {

        String serial = null;

        try {

            Class<?> c = Class.forName("android.os.SystemProperties");

            Method get = c.getMethod("get", String.class);

            serial = (String) get.invoke(c, "ro.serialno");

        } catch (Exception e) {

            e.printStackTrace();

        }

        return serial;

    }

    /**
     * 尝试打开wifi
     *
     * @param manager
     * @return
     */
    private static boolean tryOpenMAC(WifiManager manager) {
        boolean softOpenWifi = false;
        int state = manager.getWifiState();
        if (state != WifiManager.WIFI_STATE_ENABLED && state != WifiManager.WIFI_STATE_ENABLING) {
            manager.setWifiEnabled(true);
            softOpenWifi = true;
        }
        return softOpenWifi;
    }

    /**
     * 尝试关闭MAC
     *
     * @param manager
     */
    private static void tryCloseMAC(WifiManager manager) {
        manager.setWifiEnabled(false);
    }


//    public static String getDeviceId(Context context) {
//        StringBuilder deviceId = new StringBuilder();
//        // 渠道标志
//        deviceId.append("rinzz:");
//        try {
//            //IMEI(imei)
//            TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
//            String imei = tm.getDeviceId();
//            if (!TextUtils.isEmpty(imei)) {
//                deviceId.append("imei");
//                deviceId.append(imei);
                L.e("getDeviceId : ", deviceId.toString());
//                return deviceId.toString();
//            }
//            //序列号(sn)
//            String sn = tm.getSimSerialNumber();
//            if (!TextUtils.isEmpty(sn)) {
//                deviceId.append("sn");
//                deviceId.append(sn);
                L.e("getDeviceId : ", deviceId.toString());
//                return deviceId.toString();
//            }
//            //wifi mac地址
//            WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
//            WifiInfo info = wifi.getConnectionInfo();
//            String wifiMac = info.getMacAddress();
//            if (!TextUtils.isEmpty(wifiMac)) {
//                deviceId.append("wifi");
//                deviceId.append(wifiMac);
                L.e("getDeviceId : ", deviceId.toString());
//                return deviceId.toString();
//            }
//            //如果上面都没有, 则生成一个id:随机码
//            String uuid = UUID.randomUUID().toString();
//            if (!TextUtils.isEmpty(uuid)) {
//                deviceId.append("id");
//                deviceId.append(uuid);
                L.e("getDeviceId : ", deviceId.toString());
//                return deviceId.toString();
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//            deviceId.append("id").append(UUID.randomUUID().toString());
//        }
//
//        L.e("getDeviceId : ", deviceId.toString());
//
//        return deviceId.toString();
//    }

    /**
     * 获取设备id imei + WiFi
     *
     * @param context
     * @return
     */
    public static String getRinzzDeviceId(Context context) {
        StringBuilder deviceId = new StringBuilder();
        // 渠道标志
        deviceId.append("rinzz:");
        try {
            //IMEI(imei)
            TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
            String imei = tm.getDeviceId();
            if (!TextUtils.isEmpty(imei)) {
                deviceId.append("imei");
                deviceId.append(imei);
//                L.e("getDeviceId : ", deviceId.toString());
            }
            //wifi mac地址 (备选条件,如果用户手动拒绝了打开wifi,那没办法)
            WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
            WifiInfo info = wifi.getConnectionInfo();
            String wifiMac = info.getMacAddress();
            if (!TextUtils.isEmpty(wifiMac)) {
                deviceId.append("wifi");
                deviceId.append(wifiMac);
//                L.e("getDeviceId : ", deviceId.toString());
            } else {
                //打开wifi
                boolean isWifiOpen = tryOpenMAC(wifi);
                wifiMac = info.getMacAddress();
                if (!TextUtils.isEmpty(wifiMac)) {
                    deviceId.append("wifi");
                    deviceId.append(wifiMac);
                }
                //关闭wifi
                if (isWifiOpen) {
                    tryCloseMAC(wifi);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            L.e("getDeviceId : ", deviceId.toString());
            String deviceIdStr = deviceId.toString();
            //有些时候wifimac会读取失败,所以不能完全排除wifimac
            if (!deviceIdStr.contains("imei") && !deviceIdStr.contains("wifi")) {
                return "unknown";
            }
            if (!deviceIdStr.contains("imei")) {
                return "imeiUnknown";
            }
            if (!deviceIdStr.contains("wifi")) {
                return "wifiUnknown";
            }
            return deviceId.toString();
        }
    }

    /**
     * 获取设备id imei
     *
     * @param context
     * @return
     */
    public static String getRinzzDeviceIdNoWifi(Context context) {
        StringBuilder deviceId = new StringBuilder();
        // 渠道标志
        deviceId.append("rinzz:");
        try {
            //IMEI(imei)
            TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
            String imei = tm.getDeviceId();
            if (!TextUtils.isEmpty(imei)) {
                deviceId.append("imei");
                deviceId.append(imei);
//                L.e("getDeviceId : ", deviceId.toString());
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            L.e("getDeviceId_NoWifi: ", deviceId.toString());
            String deviceIdStr = deviceId.toString();

            if (!deviceIdStr.contains("imei")) {
                return "unknown";
            }
            return deviceId.toString();
        }
    }


    /**
     * 是否连接到网络
     *
     * @return
     */
    public static boolean hasNetwork() {
        ConnectivityManager connectivity = (ConnectivityManager) MyApp.getApp()
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity != null) {
            NetworkInfo info = connectivity.getActiveNetworkInfo();
            if (info != null && info.isConnected()) {
                if (info.getState() == NetworkInfo.State.CONNECTED) {
                    return true;
                }
            }
        }
        return false;

    }

    /**
     * Android直接安装apk
     *
     * @param file
     */
    public static void installApk(Context context, File file) {
        Intent intent = new Intent();
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setAction(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.fromFile(file),
                "application/vnd.android.package-archive");
        context.startActivity(intent);
    }

    /**
     * 检测是否安装
     *
     * @param context
     * @param packageName
     * @return
     */
    public static boolean isHadInstall(Context context, String packageName) {
        final PackageManager packageManager = context.getPackageManager();
        // 获取所有已安装程序的包信息
        if (pinfo == null || pinfo.size() == 0) {
            pinfo.clear();
            pinfo.addAll(packageManager.getInstalledPackages(0));
        }
        for (PackageInfo packageInfo : pinfo) {
            if (packageInfo.packageName.equalsIgnoreCase(packageName)) {
                return true;
            }
        }
        return false;
    }


    public static void startAPP(Context context, String appPackageName) {
        try {
            Intent intent = context.getPackageManager().getLaunchIntentForPackage(appPackageName);
            context.startActivity(intent);
        } catch (Exception e) {
            L.i("无法打开" + appPackageName);
        }
    }

    public static void startActivity(Class<?> activityClass) {
        Intent intent = new Intent(MyApp.getApp().getTopActivity(), activityClass);
        MyApp.getApp().getTopActivity().startActivity(intent);
    }

    public static <T> void startActivity(Class<?> activityClass, T object) {
        Intent intent = new Intent(MyApp.getApp().getTopActivity(), activityClass);
        intent.putExtra(object.getClass().getSimpleName(), object.toString());
        MyApp.getApp().getTopActivity().startActivity(intent);
    }

    public static <T> void startActivity(Class<?> activityClass, T object, String name) {
        Intent intent = new Intent(MyApp.getApp().getTopActivity(), activityClass);
        intent.putExtra(name, object.toString());
        MyApp.getApp().getTopActivity().startActivity(intent);
    }

    public static void startActivityWithParcelables(Class<?> activityClass, Class<?> dataClass, ArrayList<? extends Parcelable> data) {
        Intent intent = new Intent(MyApp.getApp().getTopActivity(), activityClass);
        intent.putParcelableArrayListExtra(dataClass.getSimpleName(), data);
        MyApp.getApp().getTopActivity().startActivity(intent);
    }

    public static void startActivityWithParcelable(Class<?> activityClass, Parcelable parcelable) {
        Intent intent = new Intent(MyApp.getApp().getTopActivity(), activityClass);
        intent.putExtra(parcelable.getClass().getSimpleName(), parcelable);
        MyApp.getApp().getTopActivity().startActivity(intent);
    }

    public static void startActivityWithParcelable(Class<?> activityClass, String name, Parcelable parcelable) {
        Intent intent = new Intent(MyApp.getApp().getTopActivity(), activityClass);
        intent.putExtra(name, parcelable);
        MyApp.getApp().getTopActivity().startActivity(intent);
    }

    public static void startActivityWithSerializable(Class<?> activityClass, Serializable serializable) {
        Intent intent = new Intent(MyApp.getApp().getTopActivity(), activityClass);
        intent.putExtra(serializable.getClass().getSimpleName(), serializable);
        MyApp.getApp().getTopActivity().startActivity(intent);
    }

    public static void startActivity(Class<?> activityClass, Bundle bundle) {
        Intent intent = new Intent(MyApp.getApp().getTopActivity(), activityClass);
        intent.putExtras(bundle);
        MyApp.getApp().getTopActivity().startActivity(intent);
    }

    public static void startActivity(Class<?> activityClass, String action) {
        Intent intent = new Intent(MyApp.getApp().getTopActivity(), activityClass);
        intent.setAction(action);
        MyApp.getApp().getTopActivity().startActivity(intent);
    }

    public static void startActivityForResult(Class<?> activityClass, String action, int requestCode) {
        Intent intent = new Intent(MyApp.getApp().getTopActivity(), activityClass);
        intent.setAction(action);
        MyApp.getApp().getTopActivity().startActivityForResult(intent, requestCode);
    }

    public static void startActivityForResult(Class<?> activityClass, int requestCode) {
        Intent intent = new Intent(MyApp.getApp().getTopActivity(), activityClass);
        MyApp.getApp().getTopActivity().startActivityForResult(intent, requestCode);
    }


    /**
     * 获取Activity中的meta
     *
     * @param context 必须传activity
     * @return
     */

    public static String readMetaFromActivity(Context context, String data_Name) {
        try {

            Activity activity = (Activity) context;
            ActivityInfo acitivityInfo = context.getPackageManager()
                    .getActivityInfo(activity.getComponentName(),
                            PackageManager.GET_META_DATA);
            return acitivityInfo.metaData.getString(data_Name);
        } catch (NameNotFoundException e) {
            e.printStackTrace();
            return "";
        }

    }

    /**
     * 获取application中的meta
     *
     * @param context 可以传application也可以传activity
     * @return
     */
    public static String readMetaFromApplication(Context context, String data_Name) {
        try {
            ApplicationInfo appInfo = context.getPackageManager()
                    .getApplicationInfo(context.getPackageName(),
                            PackageManager.GET_META_DATA);
            return appInfo.metaData.getString(data_Name);
        } catch (NameNotFoundException e) {
            e.printStackTrace();
            return "";
        }

    }

    /**
     * 获取service中的meta
     *
     * @param context 可以传application也可以传activity
     * @param service Service类
     * @return
     */
    public static String readMetaFromService(Context context, Class<Service> service, String data_Name) {
        ComponentName cn = new ComponentName(context, service);
        try {
            ServiceInfo serviceInfo = context.getPackageManager().getServiceInfo(cn,
                    PackageManager.GET_META_DATA);
            return serviceInfo.metaData.getString(data_Name);
        } catch (NameNotFoundException e) {
            e.printStackTrace();
            return "";
        }
    }

    /**
     * 获取BroadcastReceiver中的meta
     *
     * @param context 可以传application也可以传activity
     * @param reciver BroadcastReceiver类
     * @return
     */
    public static String readMetaFromReciever(Context context, Class<BroadcastReceiver> reciver, String data_Name) {
        ComponentName cn = new ComponentName(context, reciver);
        try {
            ActivityInfo reciverInfo = context.getPackageManager().getReceiverInfo(cn,
                    PackageManager.GET_META_DATA);
            return reciverInfo.metaData.getString(data_Name);
        } catch (NameNotFoundException e) {
            e.printStackTrace();
            return "";
        }
    }

    /**
     * 以最省资源的方式访问资源id
     */

    @SuppressWarnings("deprecation")
    public static Bitmap readBitMap(int resId) {
        BitmapFactory.Options opt = new BitmapFactory.Options();
        opt.inPreferredConfig = Bitmap.Config.RGB_565;
        opt.inPurgeable = true;
        opt.inInputShareable = true;
        // 获取资源图片
        InputStream is = MyApp.getApp().getResources().openRawResource(resId);
        return BitmapFactory.decodeStream(is, null, opt);
    }


    /**
     * 实现文本复制功能
     *
     * @param content
     */
    @SuppressWarnings("deprecation")
    @SuppressLint("NewApi")
    public static void copyText(String content) {
        if (A.getSystemVersion() >= 11) {
            ClipboardManager cmb = (ClipboardManager) MyApp.getApp().getSystemService(Context.CLIPBOARD_SERVICE);
            cmb.setPrimaryClip(ClipData.newPlainText("data", content));
        } else {
            android.text.ClipboardManager cmb = (android.text.ClipboardManager) MyApp.getApp()
                    .getSystemService(Context.CLIPBOARD_SERVICE);
            cmb.setText(content.trim());
        }
    }


    /**
     * 实现粘贴功能
     *
     * @return
     */
    @SuppressLint("NewApi")
    @SuppressWarnings("deprecation")
    public static String pasteText() {
        if (A.getSystemVersion() >= 11) {
            ClipboardManager cmb = (ClipboardManager) MyApp.getApp().getSystemService(Context.CLIPBOARD_SERVICE);
            return cmb.getText().toString().trim();
        } else {
            android.text.ClipboardManager cmb = (android.text.ClipboardManager) MyApp.getApp()
                    .getSystemService(Context.CLIPBOARD_SERVICE);
            return cmb.getText().toString().trim();
        }

    }

    /**
     * 分享功能
     *
     * @param context
     * @param shareTitle
     * @param msgTitle
     * @param content
     * @param fileName
     */
    public static void shareMsg(Context context, String shareTitle, String msgTitle, String content, String fileName) {
        Intent intent = new Intent(Intent.ACTION_SEND);

        if (TextUtils.isEmpty(fileName)) {
            intent.setType("text/plain"); // 纯文本
        } else {
            Bitmap bitmap = BitmapUtil.getBitmapFromAssetsFile(context, fileName);
            if (bitmap != null) {
                Uri imgUri = Uri.parse(MediaStore.Images.Media.insertImage(context.getContentResolver(), bitmap, null, null));
                intent.setType("image/*");
                intent.putExtra(Intent.EXTRA_STREAM, imgUri);
            } else {
                intent.setType("text/plain"); // 纯文本
            }
        }
        intent.putExtra(Intent.EXTRA_SUBJECT, msgTitle);
        intent.putExtra("Kdescription", msgTitle);
        intent.putExtra(Intent.EXTRA_TEXT, content);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        context.startActivity(Intent.createChooser(intent, shareTitle));
    }

    public static boolean isMobileConnected(Context context) {
        if (context != null) {
            ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo mMobileNetworkInfo = mConnectivityManager.getActiveNetworkInfo();   //获取移动网络信息
            if (mMobileNetworkInfo != null && mMobileNetworkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
                return mMobileNetworkInfo.isAvailable();
            }
        }
        return false;
    }

    /**
     * 获取设备id imei
     *
     * @param context
     * @return
     */
    public static String getDeviceId(Context context) {
        TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        String imei = tm.getDeviceId();

        return imei;
    }


    /**
     * 判断是否安装了某应用
     *
     * @param context
     * @param packageName 需要判断的应用包名
     * @return
     */
    public static boolean isPkgInstalled(Context context, String packageName) {
        PackageInfo packageInfo = null;
        try {
            packageInfo = context.getPackageManager().getPackageInfo(packageName, 0);
        } catch (NameNotFoundException e) {
            packageInfo = null;
            e.printStackTrace();
        }
        if (packageInfo == null) {
            return false;
        } else {
            return true;
        }
    }

    /**
     * 打开第三方APP
     *
     * @param context
     * @param packageName
     */
    public static void openThirdApp(Context context, String packageName) {

        PackageManager packageManager = context.getPackageManager();

        Intent intent = packageManager.getLaunchIntentForPackage(packageName);
        context.startActivity(intent);

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值