LoginSignup
4
3

More than 5 years have passed since last update.

Androidアプリではてブ追加画面をIntentで直コール

Last updated at Posted at 2016-02-23

注意
この内容は(僕が調べた限りでは)公式に認められている方法ではありません。
個人的に作成したアプリで使用しているだけなので、使用した結果発生した影響については責任を負えません。

やりたかったこと

僕ははてなブックマークを自分のナレッジベースのように使っていて、読んでよかった記事や参考記事などをなんでもはてなブックマークに突っ込んでいる。
僕のはてブ

そんな背景から、自分で作成したAndroidアプリ内のWebViewで表示したWebサイトをボタンクリックではてなブックマークにブックマーク追加したいと考えた。

そもそもIntent

以下の2種類が存在する。

  • 暗黙的Intent
  • 明示的Intent

今回はこの明示的Intentを使って、インストールされているはてなブックマークアプリのブックマーク追加画面を直接呼び出すことに成功したやり方を書く。

やり方

  1. こちらの記事を参考にさせてもらって、はてなブックマーク追加画面の情報を取得
  2. こちらの記事にあるようにACTION_SENDではてなブックマーク追加画面をコール

以上!

サンプルとして、作った画面のコードを一部貼り付ける。

HotentryItemActivity.java
// この行でごにょってWebViewオブジェクトを取得しているのは目をつぶってほしい・・・
WebView showingView = ((WebView)((View)v.getParentForAccessibility()).findViewById(R.id.webview));
// はてなブックマーク追加をIntentで直コールする
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setClassName("com.hatena.android.bookmark", "com.hatena.android.bookmark.PostActivity");
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, showingView.getUrl());
//intent.setFlags(0x3080001); //[追記]このフラグは必要ありませんでした
startActivity(intent);

上記ソースのすべてを見るにはこちら(GitHub)
リポジトリはこちら(GitHub)

[追記]
上記サンプルコード内でintent.setFlags(0x3080001);してましたが、不要でした。

[追記2]
GitHubのパス変更に伴い、リンク先変更。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3