投稿

6月, 2016の投稿を表示しています

[Qiita] Android NのDirectReplyを実装してみた

イメージ
※この記事は以前Qiitaに投稿されていた古い記事です
はじめに Android NのDirect Replyの実装を試してみました。
まず完成形はこんな感じです。

通知する Direct Replyができる通知を作成するには、入力された内容を受け取るためのPendingIntentと、実際に文字を入力させるためのRemoteInputを作成し、それをActionに詰めて通知してあげると、Direct Replyとして通知してあげることができます。
// 入力されたテキストを受け取るPendingIntent PendingIntent replyPendingIntent = PendingIntent.getBroadcast(this,0,newIntent(this, NotificationReceiver.class),0);// DirectReplyの入力欄のヒントテキスト String replyLabel ="入力してね";// 入力を受け取るやつ RemoteInput remoteInput =newRemoteInput.Builder(KEY_TEXT_REPLY).setLabel(replyLabel).build(); NotificationCompat.Action action =newNotificationCompat.Action.Builder(android.R.drawable.ic_menu_send,"ここで返信できるょ", replyPendingIntent).addRemoteInput(remoteInput).build(); Notification newMessageNotification =newNotificationCompat.Builder(this).setSmallIcon(android.R.drawable.ic_dialog_email).setContentTitle("たいとる").setContentText("てきすと").addAction(action).build(); NotificationManagerCompat notificationManager = Notific…

[Qiita] AndroidのUIテストでBitmapDrawableとColorDrawableをチェックする

※この記事は以前Qiitaに投稿されていた古い記事です
はじめに AndroidのUIテストでDrawableをチェックしたかったのですが、デフォルトではDrawableのMatcherが無いようなので、以下の記事を参考にMatcherを作成してチェックしてみました。
Android UI Test — Espresso Matcher for ImageView
https://medium.com/@dbottillo/android-ui-test-espresso-matcher-for-imageview-1a28c832626f#.qv4pjg197 また、上記の記事ではBitmapDrawableしかチェックすることができなかったので、ColorDrawableもチェックできるようなMatcherを作ってみました。
BitmapDrawableMatcher Matcherの作成 まず、以下の記事の一番下にあるDrawableMatcherのクラスを作成します(ColorDrawableのMatcherと分けるためにクラス名をBitmapDrawableMatcherに変えました)。
Android UI Test — Espresso Matcher for ImageView
https://medium.com/@dbottillo/android-ui-test-espresso-matcher-for-imageview-1a28c832626f#.qv4pjg197 次に、以下のようなメソッドを作成します。
publicclassDrawableMatcher{publicstatic Matcher<View>withBitmapDrawable(finalint resourceId){returnnewBitmapDrawableMatcher(resourceId);}} 使い方 引数にDrawableのResourceIdを渡して、checkするだけです。
importstatic<パッケージ名>.DrawableMatcher.withBitmapDrawable;onView(withId(R.id.image_view)).check(matches(withBitmapDrawable(R.drawable.…

[Qiita] GASを使ってAndroidアプリのインストール数を自動で取得してスプレッドシートに入れる

イメージ
※この記事は以前Qiitaに投稿されていた古い記事ですはじめにAndroidアプリのインストール数を取得したいという要望があり、Google Apps Scriptなら手軽に書けてスプレッドシートにもサクッと挿入できるのでは…?と思ってやってみたらできたので、メモとして書いておきます。
基本コピペをすればできるように書いたつもりなので、GASの知識がなくても自動で取得するようにできる…はず。流れ画像多めですごく長いので、大まかにやることの流れだけ書いておきますGASでGoogle Cloud Storageにアクセスできるように認証情報を作成する認証情報を使ってGCSからレポートを取得するのに必要なAccessTokenを取得するスクリプトを書く(コピペ)自動実行できるようにRefreshTokenをつかってAccessTokenを取得するスクリプトを書く(コピペ)Google Play Developer ConsoleでインストールレポートのURIをメモるAndroidアプリのインストール数を取得してスプレッドシートに挿入するスクリプトを書く(ほぼコピペ)スクリプトを実行する定期実行する設定を行うGoogle API ConsoleでAPIを有効にするGoogle PlayのインストールレポートはGoogle Cloud Storageの中に入っているので、それをダウンロードできるようにGoogle Cloud Storage JSON APIを有効にしておく
Google API Consoleで認証情報を作成するクライアントIDとクライアント シークレット認証情報を作成ボタンを押して、「OAuth クライアント ID」を選択
名前は適当に決めて、「承認済みのリダイレクトURI」のところにはGoogle Apps ScriptのURLのmacros/d/から/editの間にあるKey的なやつを取り出して以下の様なURLにして入れておく
(下で説明してるスクリプトエディタを開いたときのURLから取り出す)https://script.google.com/macros/d/<<--Key的なやつ-->>/usercallback
3. 作成してできたクライアントIDとクライアント シークレットをどこかにメモしておく
認証情報をスクリプトプロ…

[Qiita] Android Nでたくさんの通知をまとめてみたよ

イメージ
※この記事は以前Qiitaに投稿されていた古い記事ですはじめにAndroid Nで新しく提供されたバンドル通知を試してみたので、実装方法のメモです。バンドル通知の実装通知をまとめるための通知まず、複数の通知を1つにまとめるための通知をします。
通知がまとめられた際に、SummaryText以外はセットしても表示されないので、SummaryTextのみセットします。
最後のnotifyメソッドの通知IDは固定にしておかないと毎回別々の通知になってしまうので、定数で任意の値を定義しておきます。// サマリ通知 Notification summaryNotification =newNotificationCompat.Builder(this).setSmallIcon(android.R.drawable.ic_dialog_email).setStyle(newNotificationCompat.BigTextStyle().setSummaryText("SummaryText")).setGroup(GROUP_KEY).setGroupSummary(true).build(); notificationManager.notify(SUMMARY_NOTIFICATION_ID, summaryNotification);項目内容summaryText通知の概要smallIcon通知のアイコンgroup通知のまとまりを識別するためのKEYgroupSummary通知をまとめるための通知かどうかまとまってる通知に通知するあとは普通に通知します。
通知をまとめるため、setGroupでサマリ通知と同じGROUP_KEYを設定しておく必要があります。
ここではとりあえず5個くらい通知してみます。for(int i =1; i <=5; i++){int uuid = UUID.randomUUID().hashCode(); Notification notif =newNotificationCompat.Builder(this).setSmallIcon(android.R.drawable.ic_dialog_alert).setStyle(newNotificationCompat.BigTextStyle().s…