使用ContentProvider访问其他应用的SharedPreferences数据

@Override
    public Cursor query(Uri uri, String[] projection, String selection,
            String[] selectionArgs, String sortOrder) {
        switch (sUriMatcher.match(uri)) {
        case SP:
            SharedPreferences sp = getSharedPreference(SP_NAME_STRING);
                //两列 数据
            MatrixCursor cursor = new MatrixCursor(new String[] { "key", "value" });
            Map<String, ?> map = sp.getAll();
            if (map == null || map.size() == 0) {
                Log.i(getClass().getSimpleName(), "map 为空");
                return null;
            }
            if (selection != null) {
                Log.i(getClass().getSimpleName(), "查询 单条");
                //统一以String 类型返回
                cursor.addRow(new String[] { selection, String.valueOf(map.get(selection)) });
            } else {
                Log.i(getClass().getSimpleName(), "查询 全部");
                Iterator<String> iterator = map.keySet().iterator();
                while (iterator.hasNext()) {
                    String key = iterator.next();
                    cursor.addRow(new String[] { key, String.valueOf(map.get(key)) });
                }
            }
            return cursor;

        default:
            break;
        }

        return null;
    }

    private SharedPreferences getSharedPreference(String spName) {
        return getContext().getSharedPreferences(spName, Context.MODE_PRIVATE);
    }
Cursor cursor = getContentResolver().query(
                Uri.parse("content://com.secapp.auth/SEC"), null,
                selection, null, null);
        if(cursor==null)
        {
            Toast.makeText(this, "cursor==null", Toast.LENGTH_SHORT).show();
            return;
        }
        while (cursor.moveToNext()) {
            System.out.println("key=" + cursor.getString(0) + "   value="
                    + cursor.getString(1));

//            if (cursor.getString(0).equals("keyInt")) {
//                int i = cursor.getInt(1);
//                if (i == 10) {
//                    System.out.println("i=" + i);
//                }
//            }

        }
时间: 2024-11-09 06:22:13

使用ContentProvider访问其他应用的SharedPreferences数据的相关文章

无废话Android之listview入门,自定义的数据适配器、采用layoutInflater打气筒创建一个view对象、常用数据适配器ArrayAdapter、SimpleAdapter、使用ContentProvider(内容提供者)共享数据、短信的备份、插入一条记录到系统短信应用(3)

1.listview入门,自定义的数据适配器 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent&

SharedPreferences数据、openFileOutput文件、SQLite数据库文件存储位置

在模拟器中: SharedPreferences将XML文件保存在/data/data/<package name>/shared_prefs目录下, openFileOutput方法将文件保存在/data/data/<package name>/files目录下 SQLite数据库文件存放在/data/data/<package name>/databases目录下 SharedPreferences数据.openFileOutput文件.SQLite数据库文件存储位

在nginx中使用lua直接访问mysql和memcaced达到数据接口的统一

安装nginx参见<nginx+lua+redis构建高并发应用> 让nginx 中的nginx_lua_module支持mysql 和memcache 下载 https://github.com/agentzh/lua-resty-memcached https://github.com/agentzh/lua-resty-mysql 对于访问接口的统一有很多的处理方式,这里介绍使用nginx lua 访问mysql并用memcache缓存起来. 配置如下: ... location /ge

如何监听第三方应用程序(SOAP or RESTful 客户端)访问HTTPS网站时的数据?

随着互联网的应用越来越多,在我们的日常开发和调试当中(比如调试SOAP和RESTFul的时候),我们常常需要访问用第三方的工具访问HTTPS的网站,为了简化描述,本文使用IE浏览器访问Google 提供的https://www.googleapis.com/discovery/v1/apis RESTful服务为例,注意这个是基于https协议的访问,如果用第三方的嗅探工具,比如wiresharp,即使我们能把http的数据包抓到,显示出来的内容也是乱码,因为传送的内容经过了加密,而加密的私钥就

访问cv::Mat中的数据时遇到的指针类型问题

在用Opencv的时候由于下图原本的图像尺寸是1111*1111,要进行resize,代码如下: cv::Mat img = cv::imread("//Users//apple//td3//vase//19201.png",CV_LOAD_IMAGE_GRAYSCALE); cv::Mat img2; cv::resize(img, img2, cv::Size(400,400),0,0, cv::INTER_AREA); 因为我根本不知道img的数据是什么类型(不知道数据类型根本无

Android之探索SharedPreferences数据存储的背后

前言: 最近一直在学习ios的数据存储,当学习到NSUserDefaults的时候让我回想起了SharedPreferences,今天闲来无事,想着总结一下SharedPreferences的使用. 什么是SharedPreferences存储? SharedPreferences是基础key-value(键值对)来存储一些轻量数据的存储方式,特别适用于保存软件配置参数.使用SharedPreferences 保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<packag

使用ContentProvider进行应用程序间的数据交互

什么是ContentProvider: ContentProvider用来管理数据的访问规则.它允许你的应用程序向外界暴露需要被访问的数据. 是Android的四大组件之一. ContentProviders支持四种基本的操作,即我们平时所见到的CRUD操作(增删改查).Android系统 本身已经提供了一些内容提供者,它们允许我们查询联系人,媒体库,和短息消息等. 基于Content Uri的查询: 没有Uri,ContentProvider 类基本无法工作,就像我们上网没有网址.当我们要上网

随机访问存储器、存储器模块数据的存取、局部性_15.09.15/2-第六章(6.2)

了解存储器的层次结构可以帮助程序员更好地了解系统如何将数据在存储器层次中上下移动,从而可以将自己编写的程序的数据放于较高的层次上,使得CPU能够更快地访问它们.  随机访问存储器: S(静态)RAM:其每个位存储在一个具有双稳态的bistable存储器单元里.该存储器单元的特性是只能稳定地保持在两个稳定状态中的任意一种,就像倒立的钟摆只有左边或者右边两种稳定状态一样,这种性质使得SRAM会从任意状态迅速地转移到两个稳定状态之一的状态.由于这种性质的存在,使这种存储器在有电的情况下会永久地保持它的

SharedPreferences 数据存储功能

这个是一个轻量级的存储类.实际上SharedPreferences处理的就是一个key-value(键值对)SharedPreferences经常使用来存储一些轻量级的数据.我们今天来讲讲它怎样进行操作的.我们知道这个存储类仅仅能在同一个包类使用(类似于一个应用的全局变量). 其存储位置在/data/data/<包名>/shared_prefs文件夹下. SharedPreferences对象本身仅仅能获取数据而不支持存储和改动,存储改动是通过Editor对象实现.过程例如以下: 1. 依据C