您的位置:首页 > 产品设计 > UI/UE

Android 如何通过java反射得到build.prop的键值对

2017-08-23 15:10 399 查看

系统应用读取build.prop

在手机系统开发中,我们可以通过android.os.SystemProperties 来读取build.prop的键值对,但是android.os.SystemProperties对没有对外开放给sdk api。所以第三方应用无法通过系统的方法得到键值对

通过java反射机制

demo如下:

package com.example.administrator.fotacheck;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class MainActivity extends AppCompatActivity {
private TextView mDevice;
private TextView mOtaVersion;
private TextView mDate;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDevice=(TextView)findViewById(R.id.device);
mOtaVersion=(TextView)findViewById(R.id.otaversion);
mDate=(TextView)findViewById(R.id.date);

try {
Class<?> classtype = Class.forName("android.os.SystemProperties");
Method method = classtype.getDeclaredMethod("get",new Class<?>[]{String.class});
String value = (String) method.invoke(classtype,"ro.ota.version");
mOtaVersion.setText(String.format(getString(R.string.ota_version),value));
value= (String) method.invoke(classtype,"Fota.device");
mDevice.setText(String.format(getString(R.string.device),value));
value= (String) method.invoke(classtype,"ro.ota.date");
mDate.setText(String.format(getString(R.string.date),value));
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐