导航:首页 > 操作系统 > android获取文件属性

android获取文件属性

发布时间:2022-11-06 21:31:29

android怎么在代码里获得系统文件的读写权限

本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久,知道这个目的还是可以达到的。
第一个方法简单点,不过需要在Android系统源码的环境下用make来编译
1. 在应用程序的AndroidManifest.xml中的manifest节点中加入
android:sharedUserId="android.uid.system"这个属性。
2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行
3. 使用mm命令来编译,生成的apk就有修改系统时间的权限了。
第二个办法麻烦点,不过不用开虚拟机跑到源码环境下用make来编译:
1. 同上,加入android:sharedUserId="android.uid.system"这个属性。
2. 使用eclipse编译出apk文件,但是这个apk文件是不能用的。
3. 用压缩软件打开apk文件,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件。
4. 使用目标系统的platform密钥来重新给apk文件签名。这步比较麻烦,
首先找到密钥文件,在我的Android源码目录中的位置
是"build argetproctsecurity",下面的platform.pk8和platform.x509.pem
两个文件。
然后用Android提供的Signapk工具来签名,signapk的源代码是
在"build oolssignapk"下,
用法为"signapk platform.x509.pem platform.pk8 input.apk output.apk",
文件名最好使用绝对路径防止找不到,也可以修改源代码直接使用。
这样最后得到的apk和第一个方法是一样的。
最后解释一下原理,首先加入android:sharedUserId="android.uid.system"这个属性。通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中。那么把程序的UID配成android.uid.system,也就是要让程序运行在系统进程中,这样就有权限来修改系统时间了。
只是加入UID还不够,如果这时候安装APK的话发现无法安装,提示签名不符,原因是程序想要运行在系统进程中还要有目标系统的platform
key,就是上面第二个方法提到的platform.pk8和platform.x509.pem两个文件。用这两个key签名后apk才真正可以放入系统进程中。第一个方法中加入LOCAL_CERTIFICATE := platform其实就是用这两个key来签名。这也有一个问题,就是这样生成的程序只有在原始的Android系统或者是自己编译的系统中才可以用,因为这样的系统才可以拿到 platform.pk8和platform.x509.pem两个文件。要是别家公司做的Android上连安装都安装不了。试试原始的Android 中的key来签名,程序在模拟器上运行OK,不过放到G3上安装直接提示"Package ... has no signatures that match those in shared user android.uid.system",这样也是保护了系统的安全。

㈡ android开发中,在activity中如何获取xml中控件的属性

android 获取XML文件有几种方式 1.R.文件名.文件里的数据名
2.gentRu...
3.如果在控件属性那直接引用就行

㈢ Android获取文件类型是图片还是视频

类型是文件的视频,右击——属性——选视频播放器——确定,就可以打开看了。(注意播放器的适应性,多选几个试试)

㈣ 如何获取APK文件属性

咱俩问题一样 你会时教我吧

㈤ android怎么在代码里获得系统文件的读写权限

本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久,知道这个目的还是可以达到的。
第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:
1. 在应用程序的AndroidManifest.xml中的manifest节点中加入
android:sharedUserId="android.uid.system"这个属性。
2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行
3. 使用mm命令来编译,生成的apk就有修改系统时间的权限了。
第二个办法麻烦点,不过不用开虚拟机跑到源码环境下用make来编译:
1. 同上,加入android:sharedUserId="android.uid.system"这个属性。
2. 使用eclipse编译出apk文件,但是这个apk文件是不能用的。
3. 用压缩软件打开apk文件,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件。
4. 使用目标系统的platform密钥来重新给apk文件签名。这步比较麻烦,
首先找到密钥文件,在我的Android源码目录中的位置
是"build argetproctsecurity",下面的platform.pk8和platform.x509.pem
两个文件。
然后用Android提供的Signapk工具来签名,signapk的源代码是
在"build oolssignapk"下,
用法为"signapk platform.x509.pem platform.pk8 input.apk output.apk",
文件名最好使用绝对路径防止找不到,也可以修改源代码直接使用。
这样最后得到的apk和第一个方法是一样的。
最后解释一下原理,首先加入android:sharedUserId="android.uid.system"这个属性。通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中。那么把程序的UID配成android.uid.system,也就是要让程序运行在系统进程中,这样就有权限来修改系统时间了。
只是加入UID还不够,如果这时候安装APK的话发现无法安装,提示签名不符,原因是程序想要运行在系统进程中还要有目标系统的platform
key,就是上面第二个方法提到的platform.pk8和platform.x509.pem两个文件。用这两个key签名后apk才真正可以放入系统进程中。第一个方法中加入LOCAL_CERTIFICATE := platform其实就是用这两个key来签名。这也有一个问题,就是这样生成的程序只有在原始的Android系统或者是自己编译的系统中才可以用,因为这样的系统才可以拿到 platform.pk8和platform.x509.pem两个文件。要是别家公司做的Android上连安装都安装不了。试试原始的Android 中的key来签名,程序在模拟器上运行OK,不过放到G3上安装直接提示"Package ... has no signatures that match those in shared user android.uid.system",这样也是保护了系统的安全。

㈥ android如何获取本地文件属性信息

通过主动的方式通知系统我们需要文件列表,要向系统发送广播

java">sendBroadcast(newIntent(Intent.ACTION_MEDIA_MOUNTED,Uri.parse(“file://”
+Environment.getExternalStorageDirectory())));

然后通过接收器获取系统文列表


{
privatefinalstaticStringTAG=”MediaScannerReceiver”;
@Override
publicvoidonReceive(Contextcontext,Intentintent){
Stringaction=intent.getAction();
Uriuri=intent.getData();
StringexternalStoragePath=Environment.getExternalStorageDirectory().getPath();
if(action.equals(Intent.ACTION_BOOT_COMPLETED)){
//scaninternalstorage
scan(context,MediaProvider.INTERNAL_VOLUME);
}else{
if(uri.getScheme().equals(“file”)){
//
Stringpath=uri.getPath();
if(action.equals(Intent.ACTION_MEDIA_MOUNTED)&&
externalStoragePath.equals(path)){
scan(context,MediaProvider.EXTERNAL_VOLUME);
}elseif(action.equals(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE)&&
path!=null&&path.startsWith(externalStoragePath+”/”)){
scanFile(context,path);
}
}
}
}
privatevoidscan(Contextcontext,Stringvolume){
Bundleargs=newBundle();
args.putString(“volume”,volume);
context.startService(
newIntent(context,MediaScannerService.class).putExtras(args));
}
privatevoidscanFile(Contextcontext,Stringpath){
Bundleargs=newBundle();
args.putString(“filepath”,path);
context.startService(
newIntent(context,MediaScannerService.class).putExtras(args));
}
}

㈦ Android如何获取文件的最后访问时间,创建时间

数据库中的文件的话,要adb shell进去查看数据库有没有该字段。存储卡上的文件的话,java中没有获取文件创建事件的接口。

一、 从resource中的raw文件夹中获取文件并读取数据(资源文件只能读不能写)
String res = "";

try{

InputStream in = getResources().openRawResource(R.raw.bbi);

//在\Test\res\raw\bbi.txt,

int length = in.available();

byte [] buffer = new byte[length];

in.read(buffer);

//res = EncodingUtils.getString(buffer, "UTF-8");

//res = EncodingUtils.getString(buffer, "UNICODE");

res = EncodingUtils.getString(buffer, "BIG5");

//依bbi.txt的编码类型选择合适的编码,如果不调整会乱码

in.close();

}catch(Exception e){

e.printStackTrace();

}

myTextView.setText(res);//把得到的内容显示在TextView上

二、 从asset中获取文件并读取数据(资源文件只能读不能写)
String fileName = "yan.txt"; //文件名字

String res="";

try{

InputStream in = getResources().getAssets().open(fileName);

// \Test\assets\yan.txt这里有这样的文件存在

int length = in.available();

byte [] buffer = new byte[length];

in.read(buffer);

res = EncodingUtils.getString(buffer, "UTF-8");

}catch(Exception e){

e.printStackTrace();

}

三、 从sdcard中去读文件,首先要把文件通过\android-sdk-windows\tools\adb.exe把本地计算机上的文件到sdcard上去,adb.exe push e:/Y.txt /sdcard/, 不可以用adb.exe push e:\Y.txt \sdcard\ 同样: 把仿真器上的文件到本地计算机上用: adb pull ./data/data/com.tt/files/Test.txt e:/

String fileName = "/sdcard/Y.txt";

//也可以用String fileName = "mnt/sdcard/Y.txt";

String res="";

try{

FileInputStream fin = new FileInputStream(fileName);

//FileInputStream fin = openFileInput(fileName);

//用这个就不行了,必须用FileInputStream

int length = fin.available();

byte [] buffer = new byte[length];

fin.read(buffer);

res = EncodingUtils.getString(buffer, "UTF-8");

fin.close();

}catch(Exception e){

e.printStackTrace();

}

myTextView.setText(res);

㈧ android中如何获取manifest文件中的Priority属性

android:priority
这个属性用于给过滤器设置一个优先级。其父组件能够通过优先级来依次处理过滤器所描述类型的Intent对象。这个属性对Activity和Broadcast Receiver对象有意义:
1. 它提供了Activity能够如何响应跟过滤器匹配的Intent对象请求的信息(相对与其他的也能响应这个Intent请求的Activity)。当一个Intent对象请求能够被多个带有不同优先级的Activity处理时,Android系统只考虑把高优先级的Intent过滤器作为潜在的Intent对象请求目标。
2. 它控制了Broadcast Receiver执行接收广播消息的顺序。高优先级的过滤器会优先调用。(这个顺序只应用与同步消息,对于异步消息会忽略优先级的设置。)
只有真正想要给接收广播消息的过滤器施加一个特定顺序,或者要强制Android来应用另外一个Activity,才会使用这个属性。
这个属性值必须是一个整数,如:100,数字越大,优先级越高。
被引入的版本(INTRODUCED IN):

如果你想获得Activity的优先级的话 可以去查查当前Activity的文档,肯定 是有的。

安卓系统如何更改文件的属性

安卓系统更改文件的属性,需要先取得root权限,才能更改,如下步骤:
1,手机要root,没有root的手机,无论手机或是电脑的文件管理器都不能取得手机系统的最高权限,无法修改、替换系统核心文件,手机root的方式有很多,要选择自己手机合适的方式;
2、手机端修改系统文件需要用到RE管理器,电脑端修改手机系统文件同样需要RE管理器,所以电脑要先安装pc版的RE管理器;更重要的一点是电脑端要安装好所控手机的usb驱动;
3、无论手机端或电脑端的RE管理器运行都要先取得系统权限,运行时手机端会有权限提示,需点击确认,RE管理器就可以运行了;
4、RE管理器在修改系统、替换文件后,要同时修改文件的权限,可参照这个教程(电脑端RE是一样的):

㈩ Android的java怎么获取文件大小

android中的java获取文件大小的方法:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
public class FileContent {
private String path = "F:\\下载说明.txt";
public FileContent() throws IOException
{
File f = new File(path);
FileReader fileReader = new FileReader(f);
BufferedReader br = new BufferedReader(fileReader);
String str;
while((str = br.readLine() ) != null)
{
System.out.println(str);
}
System.out.println(new FileInputStream(new File(path)).available() / 1024 / 1024 +"M");
}

public static void main(String[] args) {
try {
new FileContent();
} catch (IOException e) {
e.printStackTrace();
}
}
}

阅读全文

与android获取文件属性相关的资料

热点内容
dvd光盘存储汉子算法 浏览:758
苹果邮件无法连接服务器地址 浏览:963
phpffmpeg转码 浏览:672
长沙好玩的解压项目 浏览:145
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:737
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:486
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:383
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:350
风翼app为什么进不去了 浏览:779
im4java压缩图片 浏览:362
数据查询网站源码 浏览:151
伊克塞尔文档怎么进行加密 浏览:893
app转账是什么 浏览:163