安卓工具基础代码库
GitLqr
A Little White Developer
展开
-
AndroidTV——获取Mac地址
一、核心工具类亲测 Android9、Android10 可用,注意:前提条件是,必须联网才能获取到Mac地址,否则为null。/** * @author LQR * @time 2020/8/24 * @desc 获取Mac地址工具类 * <p> * 必须在联网的情况下才能获取到mac地址 */public class MacUtil { private static final String TAG = "MacUtil"; private Mac原创 2020-10-10 16:58:22 · 1057 阅读 · 1 评论 -
直接设置媒体音量大小
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);// 设置声音类型int streamType = AudioManager.STREAM_MUSIC;// 设置音量(音乐音量最大值的一半)int index = audioManager .getStreamMaxVolum原创 2016-05-05 09:53:40 · 1286 阅读 · 0 评论 -
java 文件 大小格式化输出
/** * 返回byte的数据大小对应的文本 * @param size * @return */public static String getDataSize(long size){ DecimalFormat formater = new DecimalFormat("####.00"); if(size<1024){ return size+"byt转载 2016-05-15 09:49:30 · 938 阅读 · 0 评论 -
得到缓存及清理缓存
1、把IPackageDataObserver.aidl、IPackageStatsObserver.aidl、PackageStats.aidl复制到项目的android.content.pm包中。 如图:2、核心代码private PackageManager pm; // 存放缓存信息的容器 private List<CacheInfo> cacheDatas = new A原创 2016-04-18 13:27:11 · 1001 阅读 · 0 评论 -
集成病毒数据查询
1、把antivirus.db(手机归属地数据库)在assets目录中。 2、在SplashActivity.java(应用启动时显示的动画界面)中把antivirus.db拷贝到应用的files目录下。@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSt原创 2016-04-17 19:15:06 · 556 阅读 · 0 评论 -
Md5加密工具(附文件MD5值计算方法)
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;原创 2016-04-17 20:19:02 · 1160 阅读 · 0 评论 -
自定义的环形进度条样式
1、在style.xml中声明好自定义的环形进度条样式<style name="CicleProgressBar"> <item name="android:indeterminateOnly">true</item> <item name="android:indeterminateDrawable">@drawable/progressstyleshape</item>原创 2016-04-17 20:02:14 · 964 阅读 · 0 评论 -
自定义ProgressBar样式
1、在style.xml中声明好自定义的ProgressBar样式<style name="HeimaProgressBarHorizontal"> <!--表示进度值是否确定--> <item name="android:indeterminateOnly">false</item> <!--设置绘制显示进度的进度条的Drawable对象--> <item name原创 2016-04-17 19:38:37 · 734 阅读 · 0 评论 -
集成手机归属地查询
1、把address.db(手机归属地数据库)在assets目录中。 2、在SplashActivity.java(应用启动时显示的动画界面)中把address.db拷贝到应用的files目录下。@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);原创 2016-04-15 20:09:19 · 595 阅读 · 0 评论 -
手机总流量统计
import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStreamReader;import android.content.Context;import原创 2016-04-17 16:37:36 · 1075 阅读 · 0 评论 -
获取所有安装的apk详细信息及常规操作
1、apk信息封装类import android.graphics.drawable.Drawable;/** * apk信息封装类 * @author Administrator * */public class AppBean { private String apkPath;//apk安装路径 private Drawable icon; //apk的图标 pr原创 2016-04-16 15:12:35 · 1000 阅读 · 0 评论 -
监视任务栈中最新打开的程序
import java.util.List;import android.app.ActivityManager;import android.app.ActivityManager.RunningTaskInfo;import android.app.Service;import android.content.Intent;import android.os.IBinder;impo原创 2016-04-17 15:16:39 · 433 阅读 · 0 评论 -
Home键监听
home键的事件 通过广播监控,不是通过keyDown事件广播的意图名:Intent.ACTION_CLOSE_SYSTEM_DIALOGSprivate HomeReceiver receiver;private class HomeReceiver extends BroadcastReceiver{ @Override public void onReceive(Context原创 2016-04-17 15:52:56 · 420 阅读 · 0 评论 -
音频焦点处理
场景:听音乐,来了电话,此时音乐停止,挂断电话,音乐继续。1,在service的oncreate方法中加入以下代码:// 创建audioMangerAudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);int result = audioManager.requestAudioFoc原创 2016-05-05 10:47:35 · 709 阅读 · 0 评论 -
使用意图跳转到桌面
// 跳转到桌面意图Intent intent = new Intent();intent.setAction(Intent.ACTION_MAIN);intent.addCategory(Intent.CATEGORY_HOME);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);// 如果是在service中,需要加这一句startActiv原创 2016-05-05 10:18:42 · 606 阅读 · 0 评论 -
常规通知(Notification)模板
// 得到通知管理者NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);// 创建一个通知Notification notification = new Notification();// 设置通知flag(可以认为是一种性质)notif原创 2016-05-05 10:22:29 · 1235 阅读 · 0 评论 -
计算Android App占用的各种空间大小
一个小需求:计算Android App所占用d的手机内存(RAM)大小、App所产生的数据(Data)大小、App本身所占用的磁盘空间(ROM)大小。当然,这个就必须用到PackageManager了。1、查看Android中PackageManager源码,找到getPackageSizeInfo方法:/** * Retrieve the size information for a packa转载 2016-10-11 09:54:40 · 3739 阅读 · 0 评论 -
根据Uri获取图片绝对路径,解决Android4.4以上版本Uri转换
/** * 根据Uri获取图片绝对路径,解决Android4.4以上版本Uri转换 * @param activity * @param imageUri * @author yaoxing * @date 2014-10-12 */ @TargetApi(19) public static String getImageA转载 2016-09-18 16:00:10 · 1848 阅读 · 0 评论 -
android根据Uri得到图片文件的真实路径
/** * Try to return the absolute file path from the given Uri * * @param context * @param uri * @return the file path or null */public static String getRealFilePath( final Context context, final转载 2016-09-18 15:59:07 · 2886 阅读 · 0 评论 -
android用shape画虚线
1、在drawable中,新建shape_dot_line.xml<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line"> <!-- 显示一条虚线,破折线的宽度为dashWith,破折原创 2016-09-01 16:04:15 · 571 阅读 · 0 评论 -
解决ScrollView下嵌套GridView显示不全的问题
此问题主要是由于GridView都是可滑动的控件,嵌套在ScrollView下时需要重写onMeasure方法。public class MyGridView extends GridView{ public MyGridView(Context context, AttributeSet attrs) { super(context, attrs);转载 2016-08-30 15:52:02 · 2545 阅读 · 0 评论 -
根据关键字搜索某个目录下的文件
其中的核心方法是使用file.getName().indexOf(keyWord) >= 0来判断文件名字是否包含关键字,再结合递归,即可实现“深度”搜索。一、使用:FileUtils.searchFiles(dir, keyWord,false, new OnSearchFilesListener());二、核心代码如下:1、FileUtils.java:/* ============== 根据关原创 2016-07-29 14:48:48 · 1181 阅读 · 0 评论 -
android实现点击屏幕其他地方popupwindow消失
// 解决popupWindow显示后不消失问题menuPopupWindow.setBackgroundDrawable(new BitmapDrawable());menuPopupWindow.setOutsideTouchable(true);//必须执行完上面2个函数后再显示popupwindow,否则无效menuPopupWindow.showAsDropDown(mIbMenu)原创 2016-07-28 11:15:04 · 1148 阅读 · 0 评论 -
Android 在一个程序中启动另一个程序
有两种情况:情况一:条件:知道 包名 和程序的主入口 Activity 代码如下:Intent intent = new Intent(Intent.ACTION_MAIN);intent.addCategory(Intent.CATEGORY_LAUNCHER); ComponentName cn = new ComponentName(packageName, cl原创 2016-07-06 17:40:16 · 587 阅读 · 0 评论 -
安卓集成Vitamio实现
一、关联vitamio的lib工程,推荐使用旧版本(如4.2版:http://download.csdn.net/detail/csdn_lqr/9563244)二、在自己App的清单文件中加入以下代码:<!-- vitamio init activity --><activity android:name="io.vov.vitamio.activity.InitActivity"原创 2016-06-29 20:48:18 · 1899 阅读 · 0 评论 -
使用handler使用图片轮播及触摸停止
// 当参数为null时,handler将移除所有的回调和消息,可用于轮播图mHandler.removeCallbacksAndMessages(null);以下是自动轮播图的部分核心代码:1、利用handler消息实现自动轮播// 使用handler处理广告条自动轮播if (mHandler == null) { mHandler = new Handler() {原创 2016-05-21 14:58:18 · 1844 阅读 · 4 评论 -
请求所有父控件及祖宗控件不要拦截事件
//事件分发 //dispatchTouchEvent->onInterceptTouchEvent->onTouchEvent @Override public boolean dispatchTouchEvent(MotionEvent ev) { //请求所有父控件及祖宗控件不要拦截事件 getParent().requestDisall原创 2016-05-09 15:31:09 · 8010 阅读 · 0 评论 -
常用wifi功能集合工具类
import java.io.IOException;import java.lang.reflect.Method;import java.net.InetAddress;import java.net.NetworkInterface;import java.net.SocketException;import java.util.Enumeration;import java.ut原创 2016-05-01 16:35:38 · 817 阅读 · 0 评论 -
提高服务运行级别(前台服务)
@Overridepublic void onCreate() { //提高服务运行级别 Notification noti = new Notification(); noti.icon = R.drawable.ic_launcher; Intent intent = new Intent(); intent.setAction("com.lqr.tes原创 2016-04-17 10:41:08 · 523 阅读 · 0 评论 -
判断服务是否运行
import java.util.List;import android.app.ActivityManager;import android.app.ActivityManager.RunningServiceInfo;import android.content.Context;/** * @author Administrator * */public class原创 2016-04-14 10:33:51 · 540 阅读 · 0 评论 -
挂断电话并清除通讯录中的记录
1、创建android.telephony包,把NeighboringCellInfo.aidl复制进去。 2、创建com.android.internal.telephony包,把ITelephony.aidl复制进去。 位置如图: 3、挂断电话核心方法(利用反射)/** * 挂断电话 */protected void endCall() { //tm.endCall(); 1原创 2016-04-15 19:46:19 · 755 阅读 · 0 评论 -
发送短信
1、代码实现://发送短信SmsManager sm = SmsManager.getDefault();sm.sendTextMessage("手机号码", "", "短信内容", null, null);2、添加权限:原创 2016-04-14 17:33:08 · 2719 阅读 · 0 评论 -
开机广播接收
1、开机广播接收者类的实现:/** * @author Administrator * 开机启动的广播接收者 * */public class BootReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 开机后要进行原创 2016-04-14 17:29:18 · 418 阅读 · 0 评论 -
冒泡排序
public class SortTest { public static void main(String[] args) { System.out.println("###方法1###"); Fun1(); System.out.println("###方法2###"); Fun2(); } public static void Fun1() { /** * 实转载 2016-04-11 09:55:09 · 319 阅读 · 0 评论 -
获取手机通讯录联系人
1、手机联系人的信息domain类:/** * @author Administrator * 手机联系人的信息封装 */public class ContantBean { private String phone; private String name; public String getPhone() { return phone; } public void s原创 2016-04-13 22:29:29 · 938 阅读 · 0 评论 -
获取sim卡信息
//得到手机管理器TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);//得到sim卡信息String simSerialNumber = tm.getSimSerialNumber();原创 2016-04-13 21:57:20 · 925 阅读 · 0 评论 -
手势监测器的使用
private GestureDetector gd;@Overridepublic boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub gd.onTouchEvent(event);//绑定onTouch事件 return super.onTouchEvent(event);}原创 2016-04-13 21:50:06 · 359 阅读 · 0 评论 -
设置textview文字跑马灯效果
1、新建一个类继承TextView,复写idFocused方法@Overridepublic boolean isFocused(){ //不获取焦点,跑马灯效果不生效 return true;}2、在布局文件中引用 <MyTextView ... singleLine="true" android.ellipsize="marquee"/>原创 2016-04-13 20:48:47 · 574 阅读 · 0 评论 -
取消Dialog时的一些设置
//1、设置alertDialog的显示的使用,返回键失效dialog.setCancelabel(false);//2、设置监听alertDialog的取消事件dialog.setOnCancelListener(new OnCancelListener(){ @Override public void onCancel(DialogInterface dialog){ //取消原创 2016-04-13 20:47:51 · 764 阅读 · 0 评论 -
安卓使用代码得到当前程序的版本号和版本名
PackageManager pm = getPackageManager();//pm.getPackageInfo("程序包名","可选的flag,可以用0代替");PackageInfo packageInfo = pm.getPackageInfo(getPackageName(),0);//版本号String versionCode = packageInfo.versionCo原创 2016-04-13 20:47:30 · 658 阅读 · 0 评论