2014-02-20 52 views
0

我正在試圖訪問共享首選項文件,這是在不同的應用程序中創建的。我遵循一些教程,但沒有成功。這是我的情況:從不同的應用程序獲取共享首選項文件

應用1(com.example.remoteservice)

SharedPreferences configuracion2; 
       configuracion2 = getSharedPreferences("telo", Context.MODE_WORLD_READABLE); 

       Editor editor = configuracion2.edit(); 
       editor.putFloat("x21", Float.parseFloat(x21.getText().toString())); 
       editor.commit(); 

應用2(com.example.grafica)

Context con = createPackageContext("com.example.remoteservice", MODE_WORLD_WRITEABLE); 
      SharedPreferences pref = con.getSharedPreferences(
        "telo",MODE_WORLD_READABLE); 

      ancho = pref.getFloat("x21", 0); 

Log.i("smash", "ancho" + String.valueOf(ancho)); 

而且由於不存在 「TELO」 返回0。爲什麼??

感謝

+1

看看並檢查它是否工作http://stackoverflow.com/a/6030399/1659523 –

+0

是一樣的,我的代碼...ç – user3243651

回答

0

App1的(com.example.remoteservice)

SharedPreferences configuracion2; configuracion2 = getSharedPreferences(「telo」,Context.MODE_WORLD_READABLE);

  Editor editor = configuracion2.edit(); 
      editor.putFloat("x21", Float.parseFloat(x21.getText().toString())); 
      editor.commit(); 

App2的(com.example.grafica)

Context con = createPackageContext("com.example.remoteservice", Context.CONTEXT_IGNORE_SECURITY); 
     SharedPreferences pref = con.getSharedPreferences(
       "telo",MODE_WORLD_READABLE); 

     ancho = pref.getFloat("x21", 0); 

Log.i( 「粉碎」, 「安喬」 +將String.valueOf(安喬));

這應該解決它。此調用之前也不要調用當前上下文的getSharedPreferences()。