十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
android判断文件类型是否为音频文件
创新互联公司主营梨林网站建设的网络公司,主营网站建设方案,重庆App定制开发,梨林h5小程序定制开发搭建,梨林网站营销推广欢迎梨林等地区企业咨询
android中判断音频文件类型,通常有两种做法。一种是根据音频文件扩展名,这是最常用、最简单的方法;另一种是判断音频文件头信息,也是最准确的办法。 在Android系统内部提供了根据文件名判断的类,具体查看/frameworks/base/media/java/android/media/MediaFile.java。下面提供根据音频文件路径直接判断的方法,默认的没有提供。代码如下:
原文地址:android判断文件类型是否为音频文件 |
不是,本地文件的读写是指手机内部文件(手机本身自带的文件或内存卡的文件)读写!你说的配置文件的读写可以理解成其中的一部分。而且android对不同文件的读取方式也有不同,如果是工程内的配置文件读写的话会有专门的api去读取,如果是工程外文件直接使用JAVA中FILE类加载手机路径进行读写!在读写时应该给该工程加上读写文件的权限!!!
目前Android有两种主流的判断方式,第一种是根据程序包的名称(packageName)来判断。另外一种就是根据intent来判断,具体代码如下:
根据包名判断,以下为判断代码:
public boolean checkApkExist(Context context, String packageName) {
if (packageName == null || “”.equals(packageName))
return false;
try {
ApplicationInfo info = context.getPackageManager()
.getApplicationInfo(packageName,
PackageManager.GET_UNINSTALLED_PACKAGES);
return true;
} catch (NameNotFoundException e) {
return false;
}
}
2. 根据Intent判断,以下为判断代码:
public boolean checkApkExist(Context context, Intent intent) {
ListResolveInfo list = context.getPackageManager().queryIntentActivities(intent, 0);
if(list.size() 0){
return true;
}
return false;
}
public boolean checkApkExist(Context context, String packageName) {
if (packageName == null || “”.equals(packageName)) return false;
try {
ApplicationInfo info = context.getPackageManager() .getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES); return true;
} catch (NameNotFoundException e) { return false; }
}
public boolean checkApkExist(Context context, Intent intent) {
ListResolveInfo list = context.getPackageManager()
.queryIntentActivities(intent, 0);
if (list.size() 0) {
return true;
}
return false;
}
以上代码只是基于安卓系统来判断,对于ios系统无效。
Android应用的发布形式apk中包含的签名加密方法除了RSA还有DSA,所以不能只从apk中提取常见的META-INF/CERT.RSA,应该是检查apk中具体的签名文件。
FILE="yourapp.apk"
cert_XSA=`jar tf $FILE | grep SA`
此时得到的cert_XSA可能是META-INF/*.RSA或者META-INF/*.DSA。
2.apk中提取具体的签名文件。
jar xf $FILE $cert_XSA
此时会在当前目录得到cert_XSA文件。
3.对于得到的签名文件,提取其中签名的MD5值
keytool -printcert -file $cert_XSA | grep MD5 "$FILE.certMD5"
这时候yourapp.certMD5这个文件中就保存了yourapp.apkk中的签名MD5值。
4.最后比较两个app的签名可以用diff
FILE1="yourapp1.apk"
FILE2="yourapp2.apk"
//经过上述步骤得到$FILE1.certMD5和$FILE2.certMD5
certMD5_diff=`diff $FILE1.certMD5 $FILE2.certMD5`
if [ "$certMD5_diff" = "" ]; then
echo "$FILE1.certMD5 == $FILE2.certMD5"
fi
若输出yourapp1.apk.certMD5 == yourapp2.apk.certMD5那么这两个应用的签名就一致。