AndroidシェアApi使用(互換モード)

2647 ワード

public class SharingSupport extends Activity {
    @Override
    protected void onCreate(Bundle b) {
        super.onCreate(b);
        setContentView(R.layout.sharing_support);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        ShareCompat.IntentBuilder b = ShareCompat.IntentBuilder.from(this);
        b.setType("text/plain").setText("Share from menu");
        MenuItem item = menu.add("Share");
        ShareCompat.configureMenuItem(item, b);
        MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
        return true;
    }


    public void onShareTextClick(View v) {
        ShareCompat.IntentBuilder.from(this)
                .setType("text/plain")
                .setText("I'm sharing!")
                .startChooser();
    }


    public void onShareFileClick(View v) {
        try {
            // This file will be accessed by the target of the share through
            // the ContentProvider SharingSupportProvider.
            FileWriter fw = new FileWriter(getFilesDir() + "/foo.txt");
            fw.write("This is a file share");
            fw.close();


            ShareCompat.IntentBuilder.from(this)
                    .setType("text/plain")
                    .setStream(Uri.parse(SharingSupportProvider.CONTENT_URI + "/foo.txt"))
                    .startChooser();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    public void onShareMultipleFileClick(View v) {
        try {
            // These files will be accessed by the target of the share through
            // the ContentProvider SharingSupportProvider.
            FileWriter fw = new FileWriter(getFilesDir() + "/foo.txt");
            fw.write("This is a file share");
            fw.close();


            fw = new FileWriter(getFilesDir() + "/bar.txt");
            fw.write("This is another file share");
            fw.close();


            ShareCompat.IntentBuilder.from(this)
                    .setType("text/plain")
                    .addStream(Uri.parse(SharingSupportProvider.CONTENT_URI + "/foo.txt"))
                    .addStream(Uri.parse(SharingSupportProvider.CONTENT_URI + "/bar.txt"))
                    .startChooser();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}