投稿

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

[Qiita] Android WearのWatch Faceの作り方

イメージ
※この記事は以前Qiitaに投稿されていた古い記事ですこの記事は Androidその2 Advent Calendar 2016 の21日目の記事です。はじめに以前Androidの勉強会で、個人的に思うAndroid Wearのつらい話をしましたが、その少し後にこんなニュースがありました。モトローラ、近く新型スマートウォッチをリリースする計画はなし–The Verge
http://japan.cnet.com/news/service/35093171/ますますAndroid Wearのこの先が心配になってきましたね。
というわけで、そんなニュースは見なかったことにして、今回はAndroid WearのWatch Faceの作り方について書きます。Watch FaceとはAndroid Wearでは時計の盤面を変更することができます。
その時計の盤面というのがWatch Faceと呼ばれるものです。Google PlayでWatch Faceと検索すると、既にたくさんのWatch Faceアプリが公開されているので今さら自分で作ろうと思う人はそんなにいないかもしれませんが、Watch Faceは気になってたけど何から手をつけていいかわからない!という方や、自分オリジナルのWatch Faceを作ってみたい!という方への作るきっかけになれば幸いです。今回利用する端末Android Xperia Z3 CompactAndroid Wear Moto 360今回は詳しくは紹介しませんが、Android Wearの実機を持っていなくても、Android端末の実機とAndroid Wearのエミュレータをペアリングすることもできるので、実機を持っていないけれどとりあえず開発したい!という方はエミュレータでも大丈夫です。Android WearのBluetooth経由のデバッグ方法既にAndroid Wearアプリを開発したことがある方はここは飛ばしていただいて大丈夫です。Android Wear側の準備Android Wearの設定からビルド番号を7回タップして「開発者向けオプション」を有効にする
開発者向けオプションから「ADBデバッグ」を有効にする
「Bluetooth経由でデバッグ」を有効にする
Android端末側の準備Android端末「開発者向けオプション」を有効に…

[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とクライアント シークレットをどこかにメモしておく
認証情報をスクリプトプロ…