首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

獲取其余程序XML檔複製至指定資料夾

2013-08-01 
獲取其他程序XML檔複製至指定資料夾我想要複製其他程序底下的shared_prefs/內的檔案,並複製到一個名為bgyy

獲取其他程序XML檔複製至指定資料夾
我想要複製其他程序底下的shared_prefs/內的檔案,並複製到一個名為bgyy的檔案, 可是總是報錯? 可否有人幫解決

private void copy()
{

try
{   
Process root = Runtime.getRuntime().exec("su");
    File sd = Environment.getExternalStorageDirectory();
String path=sd.getPath()+"/bgyy"; 
File files=new File(path); 
//files.mkdir(); 


          if (sd.canWrite()) {
        files.mkdir(); 
File file = new File("/data/data/otherpackagename/shared_prefs/CCC.xml");
File fos = new File("/sdcard/bgyy/CCC.xml");
FileInputStream inStream = new FileInputStream(file);
FileOutputStream outStream = new FileOutputStream(fos); 
if(!file.exists()){

// 寫入檔案
int readLen = 0;  
        byte[] buf = new byte[1024];  
        while ((readLen = inStream.read(buf)) != -1) {  
        outStream.write(buf, 0, readLen);  
        }  
        //inStream.flush();  
        inStream.close();  
        outStream.close();  

}
          }
      
}catch(Exception e)
{
e.printStackTrace();
}





07-23 08:07:24.583: W/System.err(29841): java.io.FileNotFoundException: /data/data/otherpackagename/shared_prefs/CCC.xml: open failed: EACCES (Permission denied)
07-23 08:07:24.583: W/System.err(29841): at libcore.io.IoBridge.open(IoBridge.java:416)
07-23 08:07:24.583: W/System.err(29841): at java.io.FileInputStream.<init>(FileInputStream.java:78)
07-23 08:07:24.583: W/System.err(29841): at com.XXX.MainActivity.copyDatabase(MainActivity.java:81)
07-23 08:07:24.583: W/System.err(29841): at com.XXX.MainActivity.access$0(MainActivity.java:65)
07-23 08:07:24.583: W/System.err(29841): at com.XXX.MainActivity$1.onClick(MainActivity.java:62)
07-23 08:07:24.583: W/System.err(29841): at android.view.View.performClick(View.java:4084)


07-23 08:07:24.583: W/System.err(29841): at android.view.View$PerformClick.run(View.java:16966)
07-23 08:07:24.583: W/System.err(29841): at android.os.Handler.handleCallback(Handler.java:615)
07-23 08:07:24.583: W/System.err(29841): at android.os.Handler.dispatchMessage(Handler.java:92)
07-23 08:07:24.583: W/System.err(29841): at android.os.Looper.loop(Looper.java:137)
07-23 08:07:24.583: W/System.err(29841): at android.app.ActivityThread.main(ActivityThread.java:4745)
07-23 08:07:24.583: W/System.err(29841): at java.lang.reflect.Method.invokeNative(Native Method)
07-23 08:07:24.583: W/System.err(29841): at java.lang.reflect.Method.invoke(Method.java:511)
07-23 08:07:24.583: W/System.err(29841): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-23 08:07:24.583: W/System.err(29841): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
07-23 08:07:24.583: W/System.err(29841): at dalvik.system.NativeStart.main(Native Method)
07-23 08:07:24.583: W/System.err(29841): Caused by: libcore.io.ErrnoException: open failed: EACCES (Permission denied)
07-23 08:07:24.583: W/System.err(29841): at libcore.io.Posix.open(Native Method)
07-23 08:07:24.583: W/System.err(29841): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
07-23 08:07:24.583: W/System.err(29841): at libcore.io.IoBridge.open(IoBridge.java:400)
07-23 08:07:24.583: W/System.err(29841): ... 15 more

XML Java
[解决办法]
请忽略楼上的回答 

如果你是为了获取恰应用的sharedPreference 的话 也不是你那种获取方式 

?//?获取其他应用程序的Context?? 
????????????otherContext?=?createPackageContext("com.jiahui.preferences",?? 
????????????????????CONTEXT_IGNORE_SECURITY);?? 
?SharedPreferences?preferences?=?otherContext?? 
????????????????????????.getSharedPreferences("test",?? 
????????????????????????????????Context.MODE_WORLD_READABLE);?? 

通过这种方式就可以 达到你获取其他应用的shared_pref下面的xml信息了。前提要那个应用创建的时候不是私有权限

data不能通过你那种方式获取 有别的方法



[解决办法]
返回/data/data/youPackageName/下的指定名称的文件夹File对象,如果该文件夹不存在则用指定名称创建一个新的文件夹。
獲取其余程序XML檔複製至指定資料夾 

sorry 占用了这么多楼层 楼主 不要生气哈獲取其余程序XML檔複製至指定資料夾

热点排行