注意
この内容は(僕が調べた限りでは)公式に認められている方法ではありません。
個人的に作成したアプリで使用しているだけなので、使用した結果発生した影響については責任を負えません。
やりたかったこと
僕ははてなブックマークを自分のナレッジベースのように使っていて、読んでよかった記事や参考記事などをなんでもはてなブックマークに突っ込んでいる。
⇒ 僕のはてブ
そんな背景から、自分で作成したAndroidアプリ内のWebViewで表示したWebサイトをボタンクリックではてなブックマークにブックマーク追加したいと考えた。
そもそもIntent
以下の2種類が存在する。
- 暗黙的Intent
- 明示的Intent
今回はこの明示的Intentを使って、インストールされているはてなブックマークアプリのブックマーク追加画面を直接呼び出すことに成功したやり方を書く。
やり方
以上!
サンプルとして、作った画面のコードを一部貼り付ける。
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のパス変更に伴い、リンク先変更。