Skip to content

Instantly share code, notes, and snippets.

@rakuishi
Created May 29, 2015 03:49
Show Gist options
  • Save rakuishi/f86261817d7e0b757321 to your computer and use it in GitHub Desktop.
Save rakuishi/f86261817d7e0b757321 to your computer and use it in GitHub Desktop.
package com.rakuishi.share;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
public class MainActivity extends ActionBarActivity {
private final String[] packages = {"com.twitter.android", "com.facebook.katana", "jp.naver.line.android"};
private final int TWITTER = 0;
private final int FACEBOOK = 1;
private final int LINE = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button_twitter).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (isAlreadyInstalled(TWITTER)) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setPackage(packages[TWITTER]);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "Twitter");
startActivity(intent);
} else {
shareAppDownload(TWITTER);
}
}
});
findViewById(R.id.button_facebook).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (isAlreadyInstalled(FACEBOOK)) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setPackage(packages[FACEBOOK]);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "http://rakuishi.com/");
startActivity(intent);
} else {
shareAppDownload(FACEBOOK);
}
}
});
findViewById(R.id.button_line).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (isAlreadyInstalled(LINE)) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("line://msg/text/" + "LINE"));
startActivity(intent);
} else {
shareAppDownload(LINE);
}
}
});
}
private Boolean isAlreadyInstalled(int id) {
try {
PackageManager packageManager = getPackageManager();
packageManager.getApplicationInfo(packages[id], PackageManager.GET_META_DATA);
return true;
} catch (PackageManager.NameNotFoundException e) {
return false;
}
}
private void shareAppDownload(int id) {
Uri uri = Uri.parse("market://details?id=" + packages[id]);
startActivity(new Intent(Intent.ACTION_VIEW, uri));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment