android 工具类utils --01

android 工具类utils
包含以下功能:
1、8对应功能 唤醒屏幕并重启手机 需要将app放到源码里面编译 将app变成系统应用

1.通过广播重启手机 rebootPhoneByBroadcast

2.调用拨号 callDial

3.调用发短信 sendMessage

4.调用浏览器 callBrowser

5.调用相册 callAlbum

6.调用照相机 callCamera

7.获取gps位置 经纬度 getLocation

8.延时唤醒屏幕并重启手机wakeupAndReboot

首先在AndroidManifest中添加权限

    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.REBOOT"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
/**
 * Created by gkp on 3/16/17.
 */
public class Utils {
   //###1.通过广播重启手机 rebootPhoneByBroadcast 需要
    public static void rebootPhoneByBroadcast(Context context, String TAG) {
        Log.d(TAG, "gkp  重启手机");
        Intent intent = new Intent(Intent.ACTION_REBOOT);
        intent.putExtra("nowait", 1);
        intent.putExtra("interval", 1);
        intent.putExtra("window", 0);
        context.sendBroadcast(intent);
    }

    //2.调用拨号 callDial
    public static void callDial(Context context) {
        Intent i = new Intent();
        i.setAction(Intent.ACTION_VIEW);
        i.setData(Uri.parse("tel:10086"));
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    }
    //3.调用发短信 sendMessage
    public static void sendMessage(Context context) {
        Intent i = new Intent();
        i.setAction(Intent.ACTION_SEND);
        i.setType("text/plain");
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        i.putExtra(Intent.EXTRA_TEXT, "我正在做测试");
        context.startActivity(i);
    }
    //4.调用浏览器 callBrowser
    public static void callBrowser(Context context) {
        Intent i = new Intent();
        i.setAction(Intent.ACTION_VIEW);
        i.setData(Uri.parse("http://www.baidu.com"));
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    }
    //5.调用相册 callAlbum
    public static void callAlbum(Context context) {
        Intent i = new Intent();
        i.setAction(Intent.ACTION_GET_CONTENT);
        i.setType("image/*");
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    }
    //6.调用照相机 callCamera
    public static void callCamera(Context context) {
        Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");

        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment
                .getExternalStorageDirectory(), "camera.jpg")));
        intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);

        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);
    }
    //7.获取gps位置 经纬度 getLocation
    public static String getLocation(final Context context, String TAG) {

        LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
        List<String> list = lm.getProviders(true);

        String provider = null;
        if (list.contains(LocationManager.GPS_PROVIDER)) {
            provider = LocationManager.GPS_PROVIDER;
        } else if (list.contains(LocationManager.NETWORK_PROVIDER)) {
            provider = LocationManager.NETWORK_PROVIDER;
        } else {
            Toast.makeText(context, "请检查网络或GPS是否打开", Toast.LENGTH_LONG).show();
            return null;
        }

        if (ActivityCompat.checkSelfPermission(context,
                Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
                && ActivityCompat.checkSelfPermission(context,
                Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            Log.d(TAG, "gkp getLocation: 请添加对应权限");
            return null;
        }
        Location location = lm.getLastKnownLocation(provider);
        String result = null;
        if (location != null) {
            //获取当前位置,这里只用到了经纬度
             result = "纬度为:" + location.getLatitude() + ",经度为:"
                    + location.getLongitude();
        }

        lm.requestLocationUpdates(provider, 2 * 1000, 2, new LocationListener() {
            @Override
            public void onLocationChanged(Location location) {

                String result = null;
                if (location != null) {
                    //获取当前位置,这里只用到了经纬度
                    result = "纬度为:" + location.getLatitude() + ",经度为:"
                            + location.getLongitude();
                }

                SpUtil.saveString(context, "location", result);
            }

            @Override
            public void onStatusChanged(String provider, int status, Bundle extras) {

            }

            @Override
            public void onProviderEnabled(String provider) {

            }

            @Override
            public void onProviderDisabled(String provider) {

            }
        });
        return result;
    }
//8.延时唤醒屏幕并重启手机wakeupAndReboot
 private void wakeupAndReboot() {
        //开机15分钟后唤醒屏幕,
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                Log.d(TAG, "唤醒屏幕");
                mPowerManager.wakeUp(SystemClock.uptimeMillis());
            }
        }, 15*60 * 1000);

        //唤醒屏幕5分钟后重启手机
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                rebootPhoneBroadcast();
            }
        }, 20*60*1000);

    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
常用的Android Studio工具类有以下几个: 1. AndroidUniqueID: 这是一个用于获取Android设备唯一标识符的工具类,可以通过GitHub链接(https://github.com/appdevzhang/AndroidUniqueID)找到详细使用方法。 2. Lazy android: 这是一个方便快捷的Android工具类,通过GitHub链接(https://github.com/l123456789jy/Lazy android)可以了解它的具体功能和用法。 3. Utils-Everywhere: 这是一个Android各种工具类的集合,通过GitHub链接(https://github.com/SenhLinsh/Utils-Everywhere)可以查看所有可用的工具类和使用方法。 这些工具类都是为了方便开发者在Android Studio中进行开发而设计的,可以提高开发效率和代码质量。同时,还可以使用Lint工具来进行静态代码检查,找出代码结构和质量问题,并提供解决方案。通过Android Studio自带的Lint功能,可以进行一些常见的代码优化,去除多余的资源等。 可以通过这个(https://blog.csdn.net/ouyang_peng/article/details/80374867)链接来了解更多关于Lint工具的配置和使用方法。 除了Lint工具,还有其他的静态代码检查框架,如FindBugs、PMD和Checkstyle等,它们可以检查Java源文件或class文件的代码质量和代码风格。但在Android开发中,我们通常会选择使用Lint框架,因为它提供了强大的功能、扩展性和与Android Studio、Android Gradle插件的原生支持。此外,Lint框架还提供了许多有用的Android相关检查规则,而且有Google官方的支持,在Android开发工具的升级中也会得到完善。 你可以通过这个链接(https://blog.csdn.net/MeituanTech/article/details/79922364)了解更多关于Lint框架的使用和优势。 总结来说,Android Studio常用的工具类包括AndroidUniqueID、Lazy androidUtils-Everywhere等,而Lint工具则可以帮助我们进行静态代码检查和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值