【Android】MtkSettings中添加显示Imei为条形码功能

您所在的位置:网站首页 写入imei码 【Android】MtkSettings中添加显示Imei为条形码功能

【Android】MtkSettings中添加显示Imei为条形码功能

2023-06-11 11:06| 来源: 网络整理| 查看: 265

定位位置

MtkSettings\src\com\android\settings\deviceinfo\imei

用ARDC工具,打开性能监控,进入到所需要修改的页面,即可定位到文件位置,除了极少数无法定位,比如settings中由Adapter填充数据的页面

需求

进入Android设置点击Android系统中点击IMEI号,弹出对话框,在原有的对话框空白处加上由IMEI号生成的条形码

效果

改之前:

在这里插入图片描述

修改之后: 在这里插入图片描述

jar包相关

zxing的jar包下载

zing的github地址

编写工具类

BitmapUtil.java

package com.android.settings.deviceinfo.imei; import android.graphics.Bitmap; import com.google.zxing.BarcodeFormat; import com.google.zxing.MultiFormatWriter; import com.google.zxing.WriterException; import com.google.zxing.common.BitMatrix; public class BitmapUtil { private static final int BLACK = 0xff000000; private static final int WHITE = 0xFFFFFFFF; private static BarcodeFormat barcodeFormat = BarcodeFormat.CODE_128; public static Bitmap creatBarcode(String contents, int desiredWidth,int desiredHeight) { MultiFormatWriter writer = new MultiFormatWriter(); BitMatrix result=null; try { result = writer.encode(contents, barcodeFormat, desiredWidth, desiredHeight); } catch (WriterException e) { // TODO Auto-generated catch block e.printStackTrace(); } int width = result.getWidth(); int height = result.getHeight(); int[] pixels = new int[width * height]; // All are 0, or black, by default for (int y = 0; y pixels[offset + x] = result.get(x, y) ? BLACK : WHITE; } } Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); bitmap.setPixels(pixels, 0, width, 0, 0, width, height); return bitmap; } }

找到对应的xml

同时在填充数据的java文件中加上setImage方法(即自定义对话框数据填充文件)

public void setImage(int viewId,Bitmap bitmap){ final ImageView imageView = mRootView.findViewById(viewId); if(imageView != null){ imageView.setImageBitmap(bitmap); } }

找到弹出对话框的位置

CharSequence sequence = getTextAsDigits(mTelephonyManager.getImei(mSlotId)); String mImeiValue = sequence.toString(); if(mImeiValue.isEmpty()){ Log.i(TAG,"mImeiValue is empty"); }else{ Bitmap bitmap = BitmapUtil.createBarcode(mImeiValue,550,65); //IMEI_VALUE_IMAGE = R.id.barcode_imei mDialog.setImage(IMEI_VALUE_IMAGE,bitmap); //IMEI_VALUE_IMAGE = R.id.barcode_imei mDialog.setImage(IMEI_VALUE_IMAGE,bitmap); } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3