Kita mulai saja, buat Project baru. Ketikkan source code ini pada MainActivity.java :
package com.amijaya.receivesharesendintentimage;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
// http://cariprogram.blogspot.com
// nuramijaya@gmail.com
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//get the image view
ImageView picView = (ImageView)findViewById(R.id.picture);
//get the text view
TextView txtView = (TextView)findViewById(R.id.txt);
//get the received intent
Intent receivedIntent = getIntent();
//get the action
String receivedAction = receivedIntent.getAction();
//find out what we are dealing with
String receivedType = receivedIntent.getType();
//make sure it's an action and type we can handle
if(receivedAction.equals(Intent.ACTION_SEND)){
if(receivedType.startsWith("text/")){
//hide the other ui item
picView.setVisibility(View.GONE);
//get the received text
String receivedText = receivedIntent.getStringExtra(Intent.EXTRA_TEXT);
//check we have a string
if (receivedText != null) {
//set the text
txtView.setText(receivedText);
}
}
else if(receivedType.startsWith("image/")){
//hide the other ui item
txtView.setVisibility(View.GONE);
//get the uri of the received image
Uri receivedUri = (Uri)receivedIntent.getParcelableExtra(Intent.EXTRA_STREAM);
//check we have a uri
if (receivedUri != null) {
//set the picture
//RESAMPLE YOUR IMAGE DATA BEFORE DISPLAYING
//see http://developer.android.com/training/displaying-bitmaps/index.html
picView.setImageURI(receivedUri);//just for demonstration
}
}
}
else if(receivedAction.equals(Intent.ACTION_MAIN)){
//app has been launched directly, not from share list
txtView.setText("Tidak ada yang disharing!");
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
tools:context=".DataReceiverActivity" >
<ImageView
android:id="@+id/picture"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:contentDescription="Receive Picture Sharing"
/>
<TextView
android:id="@+id/txt"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</RelativeLayout>
Nah ini bagian yang terpenting, yang biasanya kita jarang mengedit konfigurasi di Android Manifest, sekarang ini harus diperhatikan baik-baik karena konfigurasi inilah sehingga Aplikasi yang kita buat terdaftar dan dianggap mampu menerima Sharing Gambar oleh aplikasi lain.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.amijaya.receivesharesendintentimage"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.amijaya.receivesharesendintentimage.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
<data android:mimeType="text/*" />
</intent-filter>
</activity>
</application>
</manifest>
Hasilnya, coba kita buka Image Gallery dan coba buka salah satu gambar, klik menu Share. Nama Aplikasi kita akan muncul di Pilihan. Klik.
Hasilnya Aplikasi kita mampu menangkap Gambar yang dishare tersebut :
Project seutuhnya dapat didownload disini. Jika mengalami hambatan dalam silakan baca cara mengunduhnya
Semoga menarik :)
wah mantap nih fitur sharex mas
BalasHapuskalau share location mas dengan google maps api v2? mohon pencerahan, thanks
Suatu proses share ada yang mengirim dan menerima Mas, kalau Share Teks biasanya kita lakukan dari Aplikasi kita ke Aplikasi Facebook, Twitter atau GMail. Sedangkan kalau Share Image biasanya dari Gallery ke Aplikasi Facebook, Twitter atau Aplikasi Buatan Kita. Nah kalau Share Lokasi ini agak tricky, siapa yang mengirim dan siapa yang menerima. Setahu saya aplikasi Facebook atau Twitter tidak bisa, yang bisa ya hanya Web Google Map. Akhirnya bisanya saya menggunakan Cara berikut untuk "mengirim" dua lokasi di Web Google Map sehingga Menjadi Rute Direction :
BalasHapusIntent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?f=d&hl=en&saddr=-7.782939,110.367050&daddr=-7.78313053,110.401353"));
startActivity(i);
Tetapi jika untuk menampilkan satu lokasi saya menemukan saat googling mungkin seperti ini :
String uri = "geo:7.782939,110.367050?q=7.782939,110.367050";
startActivity(new Intent(android.content.Intent.ACTION_VIEW,Uri.parse(uri)));
Yah mungkin saya yang bingung mas ^_^'
makasih gan atas pencerahannya....
Hapusbtw ada kasus nih gan tentang listview dari database mysql sudah tampil tp yg jadi masalah gan pada database ada gambar n mau ditampilkan pada activity lain pada saat listview di klik, mohon pencerahan gan
thanks....