新手必备的常用 Android 代码片段整理

新手必备的常用 Android 代码片段整理

2016-01-20  安卓应用频道

(点击上方公众号,可快速关注)


来源:赵凯强(@裸奔的凯子哥)

链接:http://blog.youkuaiyun.com/zhaokaiqiang1992/article/details/44724057


以下内容来自多个开源项目的整理和自己的项目积累。


1.拨打电话


public static void call(Context context, String phoneNumber) {

        context.startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber)));

    }


2.跳转至拨号界面


public static void callDial(Context context, String phoneNumber) {

        context.startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phoneNumber)));

    }


3.发送短信



public 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);

    }


4.唤醒屏幕并解锁


public 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();  

    }


5.需要添加权限


<uses-permission android:name="android.permission.WAKE_LOCK" />

<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />


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


public 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;

    }



7.需要添加权限


<uses-permission

     android:name="android.permission.GET_TASKS" />


8.判断当前手机是否处于锁屏(睡眠)状态


public static boolean isSleeping(Context context) {

        KeyguardManager kgMgr = (KeyguardManager) context

                .getSystemService(Context.KEYGUARD_SERVICE);

        boolean isSleeping = kgMgr.inKeyguardRestrictedInputMode();

        return isSleeping;

    }


9.判断当前是否有网络连接


public static boolean isOnline(Context context) {

        ConnectivityManager manager = (ConnectivityManager) context

                .getSystemService(Activity.CONNECTIVITY_SERVICE);

        NetworkInfo info = manager.getActiveNetworkInfo();

        if (info != null && info.isConnected()) {

            return true;

        }

        return false;

    }


10.判断当前是否是WIFI连接状态



public static boolean isWifiConnected(Context context) {

        ConnectivityManager connectivityManager = (ConnectivityManager) context

                .getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo wifiNetworkInfo = connectivityManager

                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);

        if (wifiNetworkInfo.isConnected()) {

            return true;

        }

        return false;

    }


11.安装APK


public static void installApk(Context context, File file) {

        Intent intent = new Intent();

        intent.setAction("android.intent.action.VIEW");

        intent.addCategory("android.intent.category.DEFAULT");

        intent.setType("application/vnd.android.package-archive");

        intent.setDataAndType(Uri.fromFile(file),

                "application/vnd.android.package-archive");

        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        context.startActivity(intent);

    }


12.判断当前设备是否为手机


public static boolean isPhone(Context context) {

        TelephonyManager telephony = (TelephonyManager) context

                .getSystemService(Context.TELEPHONY_SERVICE);

        if (telephony.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE) {

            return false;

        } else {

            return true;

        }

    }


13.获取当前设备宽高,单位px



 @SuppressWarnings("deprecation")

    public static int getDeviceWidth(Context context) {

        WindowManager manager = (WindowManager) context

                .getSystemService(Context.WINDOW_SERVICE);

        return manager.getDefaultDisplay().getWidth();

    }

 

    @SuppressWarnings("deprecation")

    public static int getDeviceHeight(Context context) {

        WindowManager manager = (WindowManager) context

                .getSystemService(Context.WINDOW_SERVICE);

        return manager.getDefaultDisplay().getHeight();

    }


14.获取当前设备的IMEI,需要与上面的isPhone()一起使用


@TargetApi(Build.VERSION_CODES.CUPCAKE)

    public static String getDeviceIMEI(Context context) {

        String deviceId;

        if (isPhone(context)) {

            TelephonyManager telephony = (TelephonyManager) context

                    .getSystemService(Context.TELEPHONY_SERVICE);

            deviceId = telephony.getDeviceId();

        } else {

            deviceId = Settings.Secure.getString(context.getContentResolver(),

                    Settings.Secure.ANDROID_ID);

 

        }

        return deviceId;

    }


15.获取当前设备的MAC地址


public static String getMacAddress(Context context) {

        String macAddress;

        WifiManager wifi = (WifiManager) context

                .getSystemService(Context.WIFI_SERVICE);

        WifiInfo info = wifi.getConnectionInfo();

        macAddress = info.getMacAddress();

        if (null == macAddress) {

            return "";

        }

        macAddress = macAddress.replace(":", "");

        return macAddress;

    }


16.获取当前程序的版本号


public static String getAppVersion(Context context) {

        String version = "0";

        try {

            version = context.getPackageManager().getPackageInfo(

                    context.getPackageName(), 0).versionName;

        } catch (PackageManager.NameNotFoundException e) {

            e.printStackTrace();

        }

        return version;

    }

内容概要:本文深入研究了基于深度强化学习(DRL)的微网储能系统控制策略。首先介绍了微网系统的组成及其特性,重点探讨了光伏发电、储能系统和负荷系统的关键组件数学模型。接着详细描述了Simulink仿真设计实现,包括微网环境模拟类(MicrogridEnv)、双重深度Q网络(Double DQN)算法的实现以及训练过程。为了验证该方法的有效性,文章还进行了对比实验,分别测试了规则策略、传统优化方法和DDQN策略的表现。实验结果显示,DDQN策略在成本节约、SOC合规率等方面明显优于其他两种方法。最后,本文提出了创新点与贡献总结,包括仿真-学习一体化框架、改进的DRL算法以及多维度验证,并展望了后续研究方向如多时间尺度优化、多能源协同、不确定性处理等。 适用人群:从事电力系统、微网技术研究的专业人士,以及对深度强化学习应用于能源领域感兴趣的科研人员和工程师。 使用场景及目标:①掌握微网储能系统的基本构成与工作原理;②理解如何利用深度强化学习优化微网储能控制策略;③学习具体的算法实现细节,包括环境搭建、DDQN算法实现和训练流程;④对比不同控制策略的效果,评估DDQN策略的优势。 其他说明:本文不仅提供了理论分析和技术实现,还展示了详细的实验验证过程,通过具体的实验数据证明了所提方法的有效性。此外,文中提及的多种改进措施和技术细节对于实际工程项目具有重要的参考价值。阅读本文有助于读者全面了解微网储能控制领域的最新进展,为相关研究和技术开发提供有益的指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值