본문 바로가기

안드로이드

android:sharedUserId 를 사용한 두개 이상의 어플간 파일 공유

AndroidManifest.xml에 android:sharedUserId를 사용하여 두개 이상에 어플리케이션에 같은 user id를 할당하게 되면, 각 어플리케이션간에 데이터(파일, db, SharedPreference...)를 공유 할 수 있다.

sample : app1 에서 내부 디렉토리에 생성한 파일을 app2에서 읽는 경우.

app1.java (파일 생성) --------------------------------------------------------------------------

FileOutputStream fos = openFileOutput("test.txt", MODE_PRIVATE);
fos.write(str.getBytes());

app2.java (파일 읽기) --------------------------------------------------------------------------

Context context = createPackageContext(
            "com.randomwalks.taburu.shareduserid1"/*app1의 package명*/, Context.MODE_PRIVATE);
FileInputStream fis = context.openFileInput("test.txt");
byte[] b = new byte[fis.available()];
fis.read(b);
Toast.makeText(this, new String(b), Toast.LENGTH_SHORT).show();

각 app 의 AndroidManifest.xml -----------------------------------------------------------------
<manifest xmlns:android......
    .....
    android:sharedUserId="android.uid.test" <!--각 앱에 똑같은 유저 아이디 설정-->
    ..... >