- 浏览: 1065004 次
- 性别:
- 来自: 南昌
文章分类
- 全部博客 (276)
- 生活 (1)
- 代码之美 (22)
- Media (7)
- Android Widget (3)
- Android Intent (1)
- Android Activity (4)
- UI event handle--UI事件处理机制 (2)
- Java基础知识 (12)
- android Databases (5)
- Android 系统知识 (70)
- 平常遇到的问题与解决方法 (38)
- Android TextView/EditView (2)
- Thinking Java (1)
- android webkit (6)
- JSON (1)
- XML (4)
- HTTP (1)
- Google Weather API (1)
- android 2.3 NFC (10)
- android app (20)
- android framework (7)
- C++ (2)
- android System (5)
- Pthread (1)
- Wifi (8)
- Unix/Linux C (8)
- Android 4.0 (1)
- Mail (1)
- Smack 源码学习 (4)
- iOS (4)
- Android (1)
- git (1)
- Gallery3d (2)
- React-Natice (1)
最新评论
-
dd18349182956:
你是用的smack哪个版本?我用的smack4.1.3和sma ...
关于socket长连接的心跳包 -
xukaiyin:
全英文
getApplicationContext()与this,getBaseContext() -
裂风矢:
...
<category android:name="android.intent.category.DEFAULT" /> 惹的祸 -
xanthodont:
mark一下
XMPP——Smack -
Evilover3:
mark一下,学习了
XMPP——Smack
以前我们可以通过createPackageContext来访问另外一个应用的资源(Sharepreference),但Android 7.0以后为了安全性,丢弃了这种方式了
PS:
/**
* File creation mode: allow all other applications to have read access to
* the created file.
* <p>
* As of {@link android.os.Build.VERSION_CODES#N} attempting to use this
* mode will throw a {@link SecurityException}.
*
* @deprecated Creating world-readable files is very dangerous, and likely
* to cause security holes in applications. It is strongly
* discouraged; instead, applications should use more formal
* mechanism for interactions such as {@link ContentProvider},
* {@link BroadcastReceiver}, and {@link android.app.Service}.
* There are no guarantees that this access mode will remain on
* a file, such as when it goes through a backup and restore.
* @see android.support.v4.content.FileProvider
* @see Intent#FLAG_GRANT_WRITE_URI_PERMISSION
*/
@Deprecated
public static final int MODE_WORLD_READABLE = 0x0001;
若再尝试使用MODE_WORLD_READABLE 这种方式来建立SharePreference 会报SecurityException。
PS:
/**
* File creation mode: allow all other applications to have read access to
* the created file.
* <p>
* As of {@link android.os.Build.VERSION_CODES#N} attempting to use this
* mode will throw a {@link SecurityException}.
*
* @deprecated Creating world-readable files is very dangerous, and likely
* to cause security holes in applications. It is strongly
* discouraged; instead, applications should use more formal
* mechanism for interactions such as {@link ContentProvider},
* {@link BroadcastReceiver}, and {@link android.app.Service}.
* There are no guarantees that this access mode will remain on
* a file, such as when it goes through a backup and restore.
* @see android.support.v4.content.FileProvider
* @see Intent#FLAG_GRANT_WRITE_URI_PERMISSION
*/
@Deprecated
public static final int MODE_WORLD_READABLE = 0x0001;
若再尝试使用MODE_WORLD_READABLE 这种方式来建立SharePreference 会报SecurityException。
01-08 05:32:21.465 16339 16339 E AndroidRuntime: Caused by: java.lang.SecurityException: MODE_WORLD_READABLE no longer supported 01-08 05:32:21.465 16339 16339 E AndroidRuntime: at android.app.ContextImpl.checkMode(ContextImpl.java:2134) 01-08 05:32:21.465 16339 16339 E AndroidRuntime: at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:354) 01-08 05:32:21.465 16339 16339 E AndroidRuntime: at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:349) 01-08 05:32:21.465 16339 16339 E AndroidRuntime: at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:164) 01-08 05:32:21.465 16339 16339 E AndroidRuntime: at com.android.deskclock.Utils.getCESharedPreferences(Utils.java:778) 01-08 05:32:21.465 16339 16339 E AndroidRuntime: at com.android.deskclock.settings.DefaultAlarmToneDialog.<init>(DefaultAlarmToneDialog.java:74)
发表评论
-
Android Webview加载www.youtube.com的问题
2019-04-25 10:36 988Android Webview加载www.youtube.co ... -
EditText键盘删除字符的原理
2018-10-29 19:21 1242转https://blog.csdn.net/tankai19 ... -
Background execution not allowed
2018-10-22 19:02 356411-05 10:08:18.058 673 736 ... -
failed to set system property
2018-10-17 09:21 4346在App的mk文件设置了LOCAL_CERTIFICATE : ... -
CtsDeqpTestCases fail
2018-07-27 09:44 3003Suite / Plan:VTS / cts-on-gsi ... -
在DocumentUI中的Recent(最近)列表无法显示图片的缩略图
2018-06-12 18:23 937今天客户提了一个bug说在短信添加附件,界面无法显示缩略图。接 ... -
在任务栏中清除掉播放器的进程,状态栏仍有音乐播放器状态,且音乐仍在后台播放
2018-06-05 11:28 1625在任务栏中清除掉播放器的进程,状态栏仍有音乐播放器状态,且音乐 ... -
junit.framework.AssertionFailedError: Failed to get achievable frame rates for O
2018-05-25 15:41 2333之前对于CTS测试的失败case接触不多,组长突然转了这样一个 ... -
Android 模拟各种事件的方法
2018-05-17 16:30 1519有时候没有对应的硬件设备,那我们就得通过某种方式来模拟。比如模 ... -
Android Email 新建邮件时一直显示“waiting for sync”
2018-02-28 15:48 984当用户在Setting中清除了Email的data,再返回到E ... -
javax.net.ssl.SSLHandshakeException: Unacceptable certificate: CN=GeoTrust SSL C
2018-01-30 16:48 3762最近从Android N升级到Android O,发现163的 ... -
Email中附件名称中包含中文字符显示乱码
2017-11-28 17:09 1605Email中附件名称中包含中文字符显示乱码是因为附件虽包含了中 ... -
当Email未设置账户时,通过ACTION_SENDTO启动会报ActivityNotFoundException
2017-09-27 18:15 531当Email未设置账户时,通过ACTION_SENDTO启动会 ... -
java.lang.SecurityException: Permission Denial: reading...requires android.permi
2016-05-12 11:12 2358一直在忙于Gallery,最近遇到了这样的bug,在Setti ... -
android.database.sqlite.SQLiteReadOnlyDatabaseException: attempt to write a read
2015-11-27 14:50 2952android.database.sqlite.SQLiteR ... -
AsyncTask
2015-08-21 17:43 411转自http://blog.csdn.net/hitlion2 ... -
解决IllegalStateException: Can not perform this action after onSaveInstanceState
2015-08-07 18:07 1086转自http://www.cnblogs.com/zgz345 ... -
Android setTag方法的key问题
2015-08-03 19:22 1068转自http://www.cnblogs.com/whitew ... -
ActivityGroup对子Activity的管理
2013-06-27 17:41 2098转自http://eyeandroid.diandian.co ... -
listview在activitygroup切换后无法点击的问题
2013-05-14 10:14 1492转自:http://blog.csdn.net/daguaio ...
相关推荐
总的来说,通过`createPackageContext`实现皮肤打包成apk是一种巧妙的解决方案,它让应用的皮肤可以像模块一样独立存在和更新。不过,这也需要开发者具备深入的Android系统知识,以确保安全性和性能。在实际项目中,...
我们可以使用createPackageContext方法来获取其他应用程序的Context,这个方法需要传入要获取Context的应用程序的包名和一个标志参数。 在获取了其他应用程序的Context之后,我们可以通过获取Resource类来获取对应...
Android应用程序由一个或多个APK文件组成,每个APK文件包含代码、资源和元数据。当APK被安装到设备上,Android系统会解析APK,将资源加载到Android Asset Packaging Tool (AAPT)生成的R类中,便于程序访问。然而,...
总结来说,这个资源提供了一种动态更换Android应用主题的方法,通过解压和应用ZIP文件来实现。这种方法涉及到Android的资源管理、文件操作以及Context的理解,是提高应用用户体验的一个实用技巧。
提供的代码示例展示了一个方法`setMobileDataEnabled(boolean enabled)`,它尝试通过获取`TelephonyManager`服务的私有接口`ITelephony`来控制数据连接。具体步骤如下: 1. 获取`TelephonyManager`实例。 2. 使用...
当主题apk被下载后,可以使用`Context.createPackageContext()`方法来加载apk中的资源,并用新的资源替换当前应用的资源。 6. **安全与兼容性**:确保主题APK遵循Android的资源命名规则,避免与主应用冲突。同时,...
要使用 `SharePreference`,首先需要通过 `Context` 对象来获取一个 `SharedPreferences` 实例。可以通过调用 `Context.getSharedPreferences(String name, int mode)` 方法来实现。 ```java SharedPreferences ...
(2)如果应用B要读写访问A应用中的Preference,前提条件是A应用中该preference创建时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE权限,代表其他的应用能访问读取或者写入。首先要在B中创建...
当我们谈论将皮肤打包成apk,实际上意味着我们将皮肤资源作为一个独立的应用组件来处理。 **步骤1:创建皮肤资源** 1. 创建一个新的Android项目,用于存放皮肤资源,如图片、颜色值、样式等。这些资源应与主应用中...
- 使用`Context.createPackageContext()`方法创建一个新的Context,这个新Context可以访问皮肤APK中的资源。 3. **替换主题资源**: - 通过新的Context,我们可以获取到皮肤APK中的颜色、图片等资源ID,然后替换...
- 获取皮肤资源:安装后,可以通过`Context.createPackageContext()`方法获取到皮肤apk的上下文,然后使用这个上下文加载资源。 4. **切换皮肤** - 设计接口:创建一个接口,提供更换皮肤的方法,如`changeSkin...
通过`createPackageContext`方法,你可以指定一个包名来获取该包的`Context`实例。 ```java try { Context ctx = createPackageContext("com.example.otherapp", 0); } catch (NameNotFoundException e) { // ...
通过`getContext().createPackageContext(packageName, Context.CONTEXT_IGNORE_SECURITY)`,可以创建一个指向皮肤包的Context对象,这样就可以访问皮肤包中的资源。 3. **获取皮肤包中的资源ID**: 使用`apk....
这可能需要使用到`Context.createPackageContext()`方法,它能创建一个针对特定包的新Context,然后通过这个Context获取相应的资源。 3. 更新UI:遍历所有需要更换样式的组件,重新设置它们的颜色、图片等属性,或者...
总结,运行时资源覆盖是Android开发中的一个强大工具,它让开发者可以在不更新主应用的情况下进行资源的动态修改。通过理解其工作原理和实现方式,开发者可以灵活地实现应用的个性化和动态更新,提高用户体验。然而...
核心思路是将皮肤资源打包为一个APK文件,然后在主应用中通过特定的方式读取并应用这些资源。 #### 读取皮肤包APK的数据条件 1. **相同签名**:两个APK文件必须具有相同的签名。这是APK之间进行资源共享的先决条件...
首先,我们需要知道目标应用的包名,然后使用`Context`的`createPackageContext()`方法创建一个与目标应用相同上下文的Context对象。接着,利用这个新创建的Context,调用`getSharedPreferences()`方法。 2. **...
在Android开发中,`Context`是一个非常核心的概念,它就像是应用程序的一个全局环境或者上下文,提供了与系统服务交互的能力。`Context`的理解和正确使用对于编写健壮的Android应用至关重要。下面将详细介绍`Context...
只有当两个APK的签名一致,并且它们的AndroidManifest.xml中配置了相同的sharedUserId属性时,这两个APK才能运行在同一个进程中,从而相互访问资源。 此外,还可以使用自定义文件扩展名(如mja、sga)来存放皮肤...
通过`getPackageSizeInfo`方法或反射调用,你可以得到一个`PackageStats`对象,从而获取应用的总大小。 4. **权限问题**: 访问系统目录,如`/data/app`和`/system/app`,可能需要更高的权限,通常是root权限。...