- 浏览: 177235 次
- 性别:
- 来自: 深圳
文章分类
Android不同应用之间数据的共享有许多方式,但是我觉得还是使用sharedPreference比较简单和轻量级。如果程序B想要访问程序A的sharedPreference可以通过下面的语句来实现:
当然在A程序里创建SharedPreference的时候也需要使用Context.MODE_WORLD_READABLE属性。另外SharedPreference还有Context.MODE_WORLD_WRITEABLE属性。根据SDK的解释,就是允许别的应用程序来对SharedPreference进行写操作。但是在实际程序实验中发现即使加上了这个属性,写操作也是无法成功的,会提示一个错误:Couldn't rename file /data/data/....PREFERENCES_NAME.XML to /data/data/....PREFERENCES_NAME.XML.bak。这个错误的原因应该是很明确了,程序B在程序A的目录里面没有创建和重命名文件的权限。
那么到底要怎么样才能让程序B在程序A的SharedPreferences里面写东西呢,其实很简单,在manifest.xml里面将两个应用程序的android:sharedUserId属性设为相同的就可以了。而且SharedPreference的属性也不需要Context.MODE_WORLD_WRITEABLE了,只需要Context.MODE_PRIVATE也可以完成读写操作。
try { AContext =createPackageContext(A_PACKAGE_NAME, Context.CONTEXT_IGNORE_SECURITY); } catch (NameNotFoundException e) { Log.e(TAG, "find package error!"); } SharedPreferences sp = AContext.getSharedPreferences(PREFERENCES_NAME, Context.MODE_WORLD_READABLE); sp.getInt(PREF_NAME, 0);
当然在A程序里创建SharedPreference的时候也需要使用Context.MODE_WORLD_READABLE属性。另外SharedPreference还有Context.MODE_WORLD_WRITEABLE属性。根据SDK的解释,就是允许别的应用程序来对SharedPreference进行写操作。但是在实际程序实验中发现即使加上了这个属性,写操作也是无法成功的,会提示一个错误:Couldn't rename file /data/data/....PREFERENCES_NAME.XML to /data/data/....PREFERENCES_NAME.XML.bak。这个错误的原因应该是很明确了,程序B在程序A的目录里面没有创建和重命名文件的权限。
那么到底要怎么样才能让程序B在程序A的SharedPreferences里面写东西呢,其实很简单,在manifest.xml里面将两个应用程序的android:sharedUserId属性设为相同的就可以了。而且SharedPreference的属性也不需要Context.MODE_WORLD_WRITEABLE了,只需要Context.MODE_PRIVATE也可以完成读写操作。
发表评论
-
跳转至Google Play,rate,more推广功能
2014-08-19 15:09 1115String appPackageName = getPac ... -
Activity 全透明属性
2014-07-02 15:10 542android:theme="@android:st ... -
android平台运行flash游戏
2014-03-31 19:20 820android平台运行flash游戏 http://blo ... -
遍历指定目录下的图片文件 显示在gridview
2014-03-05 12:49 811gridview布局 <?xml version=& ... -
Android桌面悬浮窗进阶,QQ手机管家小火箭效果实现
2014-01-06 15:11 1018http://blog.csdn.net/guolin_b ... -
android 透明效果
2013-06-28 17:25 909参考http://2960629.blog.51cto ... -
拦截Home键
2013-03-19 12:03 947主要就是重写 onAttachedTo ... -
root情况下静默安装
2012-12-17 11:12 818参考 http://blog.csdn.net/su1216/ ... -
app推广必备功能:分享到,更多应用,创建快捷方式
2012-12-14 13:14 1188public class ShareTool { ... -
获取屏幕上正在显示的activity
2012-12-08 17:19 1038参考文章http://chroya.iteye.com/blo ... -
android异步加载数据
2012-11-07 13:55 958参考http://blog.csdn.net/sfshine/ ... -
Activity去除标题栏和状态栏
2012-11-06 15:50 1379方法一:直接在xml文件里设置 //全屏(隐藏标题栏和状 ... -
无法清除的Notification,直到点击了才可以消除
2012-11-06 12:35 2220参考文章 http://www.cnblogs.com/new ... -
vpn
2012-10-30 17:17 705参考文章http://blog.csdn.net/whyonl ... -
开机启动Service
2012-10-25 14:58 865程序执行效果为: 开机后跳转到MainActivity并执行定 ... -
Android 定时执行任务
2012-10-25 13:28 1969本程序执行效果为: 隔3秒打印"收到广播" ... -
打开关闭移动数据、wifi、gps
2012-10-13 23:11 1003参考 http://blog.csdn.net/anzhu_1 ... -
联网自动开启Service
2012-10-12 10:13 944参考http://blog.csdn.net/lvron/ar ... -
从assets复制文件到sd卡
2012-09-28 21:34 2920参考文章 批量从assets复制文件到sd卡 http://l ... -
模仿安卓市场自动下载安装打开apk应用程序
2012-09-28 20:18 3007主程序 package com.example.downl ...
相关推荐
在Android中,实现不同应用间的数据共享主要有以下几种方法: 1. **ContentProvider**:Android系统的组件之一,可以暴露特定的数据集供其他应用访问。创建一个ContentProvider专门处理SharedPreferences文件,其他...
大数据中心数据共享交换平台建设与应用方案 大数据中心数据共享交换平台是基于“聚、通、用”总体目标的建设项目,以实现市级数据共享交换平台的建设目标。该平台的主要目的是为了实现数据共享交换、数据服务和数据...
在Android平台上,应用程序之间的数据共享是一项重要的功能,主要通过SQLite数据库和ContentProvider机制来实现。ContentProvider作为Android系统的一部分,允许不同的应用之间安全地访问和交换数据,即使这些数据...
根据提供的文件内容,本篇论文主要探讨了区块链技术在物流应用系统数据共享中的应用,下面将详细展开介绍相关知识点。 标题《基于区块链的物流应用系统数据共享技术.pdf》揭示了本文研究的核心内容和方向,即利用...
健康医疗数据共享应用需要能够满足不同部门和机构之间的数据共享需求,同时还需要满足数据的安全和隐私保护需求。 基于分布式存储与计算技术的健康医疗数据共享应用模式 基于分布式存储与计算技术的健康医疗数据...
总结一下,Android提供了多种方式来实现不同应用间的数据共享和存储:通过ContentProvider公开数据接口,使用Services进行后台通信,以及通过设置SharedUserId提升信任应用的权限。每个方法都有其适用场景,开发者应...
"健康医疗大数据共享的应用场景及价值探析" 健康医疗大数据共享是医疗卫生行业数据实际需求的必然趋势,具有重大应用价值。本文梳理了健康医疗大数据共享的五大典型应用场景和五大应用价值。 一、健康医疗大数据...
2. 数据共享机制:该文档的重点在于数据共享机制的构建,通过建立数据共享平台来实现不同业务系统间的数据互联互通。数据共享机制可以有效避免信息孤岛,促进数据资源的共享和利用。 3. 数据目录与数据分类:实现跨...
在Android系统中,ContentProvider是实现应用程序间数据共享的核心组件。它允许一个应用将自己的数据集公开,让其他应用可以通过标准的ContentResolver接口进行访问。这种机制使得数据可以在多个应用之间透明地共享...
请注意,这种跨应用数据共享的方法仅适用于Android 2.3及以下版本。在更高版本的Android中,推荐使用ContentProvider或者自定义的文件共享方案,因为它们提供了更好的权限控制和更安全的数据交换。 总结,跨应用的...
本主题聚焦于"C#实现数据共享",这是一种在不同工程之间传递和共享信息的关键技术。在C#中,数据共享可以通过多种方法实现,其中一种独特的方式是利用`unsafe`关键字直接操作内存。下面我们将深入探讨这一技术以及与...
跨域数据共享是指在不同的组织、部门或系统之间进行数据交流的过程。这一概念的提出旨在打破信息孤岛,促进数据资源的有效利用,为决策提供更全面的支持。然而,跨域数据共享面临着一系列挑战: - **数据标准化难度...
电信设备在企业移动应用数据共享中扮演着重要角色。它们提供网络连接,保障数据传输的稳定性和速度。同时,电信设备上的安全措施,如防火墙、加密技术等,为数据共享提供了硬件级别的保护。 五、安全策略 1. 数据...
大数据共享交换平台是一种高效的数据管理和分析工具,它旨在整合来自不同来源的数据,提供实时或近实时的数据交换,并通过可视化方式展示这些数据的洞察。在这个压缩包中,"大数据共享交换平台数据可视化演示DEMO...
在IT领域,共享内存是一种高效的进程间通信(IPC, Inter-Process Communication)方式,它允许不同的程序在同一块物理内存区域进行读写操作,从而实现数据的快速传递。在这个场景下,描述中的小程序巧妙地利用了共享...
"网络数据共享服务"是通过互联网将信息资源在不同设备间进行交换和访问的技术。这种服务极大地提升了信息传递的效率,降低了沟通成本。CCFileTransfer作为其中的一员,它利用TCP/IP协议栈,实现文件的快速上传、下载...
区块链技术在政务数据共享中的应用.docx
在实际开发中,ContentProvider不仅可以用于应用间的数据共享,还常用于备份和恢复数据,或者与其他系统服务(如ShareActionProvider、Intent等)进行数据交互。它为数据交换提供了一套标准的接口,使得数据操作更加...
"电信设备-实现移动终端间数据共享的方法和系统"的主题涉及到如何高效、安全地在不同移动设备之间传输和分享信息。这一主题涵盖了多个关键知识点,包括但不限于网络通信协议、数据加密技术、设备间的配对与认证机制...