안드로이드 갤러리(S메모) 공유 받는방법입니다.

 

개발을 하다보니 S메모의 내용을 받으려고 헤메고 다녀서 정리 해둡니다.

 

우선 공유를 받게 되면 기본적으로 URI 형태로 받을수 있습니다.

자 그럼 손을 대야하는곳은

AndroidManifest.xml 와 실제 구동할 Activity 입니다.

 

우선 AndroidManifest.xml입니다

 

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.hjm.shear.test"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>

            <intent-filter

                  android:label ="원하는이름">
                <action android:name="android.intent.action.SEND" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="image/*" />
            </intent-filter>            

         </activity>
    </application>

</manifest>

 

빨간 부분이 추가되어야 합니다.

 

다음은 Activity 부분입니다.

 

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

//실제액티비티에서 인텐트를 받습니다.

 

         Intent intent = getIntent();

        Bundle extras = intent.getExtras();

//저갔은 경우는 그냥 이미지뷰에 넣었습니다. 참고로 예외처리 안했습니다. ㅋㅋ

 

        ImageView imageview = (ImageView)findViewById(R.id.imgv);

        Uri uri = (Uri) extras.getParcelable(Intent.EXTRA_STREAM); //이게 URI입니다.

//이것이 필요한거구요  


        if(!uri.equals("")){
         String[] proj = { MediaStore.Images.Media.DATA };
           Cursor cursor = managedQuery(uri, proj, null, null, null);
           int index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
           cursor.moveToFirst();
         String  path = cursor.getString(index);
           path = path.substring(5);
//path 이게 URI를 갖고 파일경로 알아냅니다. 

 

            imageview.setImageURI(uri); 
        }
       
    }   
}