app获取自己的签名
时间:2022-03-12 23:14
package com.tencent.wework.api.lcx; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Iterator; import java.util.List; import android.annotation.SuppressLint; import android.app.Activity; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.widget.Toast; public class LcxSignature { private Activity context; public LcxSignature(Activity context1) { context = context1; } /** * 遍历包名 */ public void getSign() { String paramString = context.getPackageName(); showToast("包名 = " + paramString); PackageManager pm = context.getPackageManager(); List<PackageInfo> apps = pm.getInstalledPackages(PackageManager.GET_SIGNATURES); Iterator<PackageInfo> iter = apps.iterator(); while (iter.hasNext()) { PackageInfo packageinfo = iter.next(); String packageName = packageinfo.packageName; if (packageName.equals(paramString)) { showToast("签名 = " + MD5Encode(packageinfo.signatures[0].toByteArray())); } } } /** * 根据包名获取签名 */ @SuppressLint("NewApi") public void getRawSignature() { // String paramString = "com.lc.iotstandard.ht"; String paramString = context.getPackageName(); PackageManager localPackageManager = context.getPackageManager(); PackageInfo localPackageInfo; try { localPackageInfo = localPackageManager.getPackageInfo(paramString, PackageManager.GET_SIGNATURES); if (localPackageInfo == null) { showToast("信息为 null, 包名 = " + paramString); return; } } catch (PackageManager.NameNotFoundException localNameNotFoundException) { showToast("包名没有找到..."); return; } // String result = getSignature(paramString); String result = MD5Encode(localPackageInfo.signatures[0].toByteArray()); showToast(result); ClipboardManager cm = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); cm.setPrimaryClip(ClipData.newPlainText(null, result)); } /** * 根据包名获取签名 * pkg: 包名 */ public String getSignature(String pkg) { try { PackageInfo var1; var1 = context.getPackageManager().getPackageInfo(pkg, PackageManager.GET_SIGNATURES); return MD5Encode(var1.signatures[0].toByteArray()); } catch (Throwable var2) { } return ""; } private static String MD5Encode(byte[] toencode) { try { MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.reset(); md5.update(toencode); return HexEncode(md5.digest()); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return ""; } @SuppressLint("DefaultLocale") private static String HexEncode(byte[] toencode) { StringBuilder sb = new StringBuilder(toencode.length * 2); for (byte b : toencode) { sb.append(Integer.toHexString((b & 0xf0) >>> 4)); sb.append(Integer.toHexString(b & 0x0f)); } return sb.toString().toUpperCase(); } public void showToast(String info) { Toast toast = Toast.makeText(context, info, Toast.LENGTH_LONG); toast.show(); } }
相关推荐
- Android系统编程入门系列之界面Activity交互响应
- 新型横向移动工具原理分析、代码分析、优缺点以及检测方案
- uni-app滚动视图容器(scroll-view)之监听上拉事件
- uniapp h5,app两端复制文本
- Android系统编程入门系列之界面Activity响应丝滑的传统动画
- 【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
- 诺基亚短信生成!太好玩了
- iOS 跳转App Store进行评分
- 开发一个即时通讯App
- 关闭苹果IOS app自动更新
电脑软件
本类排行
- 1关闭苹果IOS app自动更新
- 2iOS 跳转App Store进行评分
- 3诺基亚短信生成!太好玩了
- 4Android系统编程入门系列之界面Activity响应丝滑的传统动画
- 5uniapp h5,app两端复制文本
- 6uni-app滚动视图容器(scroll-view)之监听上拉事件
- 7新型横向移动工具原理分析、代码分析、优缺点以及检测方案
- 8Android系统编程入门系列之界面Activity交互响应
- 9开发一个即时通讯App
- 10【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn