如何在Android开发中对properties文件进行读取

 我来答
思人寂沉一02
2016-09-05 · 超过17用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:20.1万
展开全部

Android有个隐藏的方法可以获取properties:就是

SystemProperties.getString(String key,  String defaultVale);

它的包名是:android.os.SystemProperties。

使用它有两个方法:

1 导入framework.jar包,前提是需要有源码编译环境,编译出来的framework链接文件。

2 还有一种就是使用反射机制去使用SystemPorperties的方法:

package com.as;

import java.lang.reflect.Method;

import android.util.Log;

public class SystemPropertiesInvoke {
    private static final String TAG = "SystemPropertiesInvoke";
    private static Method getLongMethod = null;
    private static Method getBooleanMethod = null;
       
    public static long getLong(final String key, final long def) {
        try {
            if (getLongMethod == null) {
                getLongMethod = Class.forName("android.os.SystemProperties")
                        .getMethod("getLong", String.class, long.class);
            }
            
            return ((Long) getLongMethod.invoke(null, key, def)).longValue();
        } catch (Exception e) {
            Log.e(TAG, "Platform error: " + e.toString());
            return def;
        }
    }
    
    public static boolean getBoolean(final String key, final boolean def) {
        try {
            if (getBooleanMethod == null) {
                getBooleanMethod = Class.forName("android.os.SystemProperties")
                        .getMethod("getBoolean", String.class,boolean.class);
            }
          
           //Log.i(TAG,"getBoolean:"+"key:"+key+" def:"+def); 
           //Log.i(TAG,"getBoolean:"+getBooleanMethod.invoke(null, key, def)); 
            
            return (Boolean)getBooleanMethod.invoke(null, key, def);
        } catch (Exception e) {
            Log.e(TAG, "Platform error: " + e.toString());
            return def;
        }
    }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式