LoginSignup
0
0

More than 1 year has passed since last update.

Kotlinで地図アプリ(ゴミ拾いアプリ)作成。(6日目)

Last updated at Posted at 2021-12-28

Kotlinで制作している、GoogleMapを使った、自作のゴミ拾いアプリ。制作6日目。

これまでの経過

1日目:Android Studio + Kotlin で開発環境作成。GoogleMapAPIアクセスキー取得。エミュで動作。
2日目:地図にマーカー表示・カスタム方法。マップ表示形式の変更。
3日目:現在地を取得し、地図上に表示。クリックイベント。
4日目:移動する際にマップがスクロールしなかった問題を修正。
5日目:volleyを使いGETリクエスト送信と、サーバー側で受信+記録。

今日やった事

・LocalDateで、現在の日時を取得
・ボタンにアイコン画像を付ける
・サーバー側でBASIC認証を設定
・クライアント側はVolleyでBASIC認証

LocalDateで、現在の日時を取得

参考サイト

val current = LocalDateTime.now()
val date_time = current.format( DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") )

ボタンにアイコン画像を付ける

以下のサイトを参考にactivity_maps.xmlを変更

ButtonをImageButtonに変更。

setOnClickListenerの方も、ButtonをImageButtonに変更。

エミュレーターの動作画面:
イメージ7366.jpg

サーバー側でBASIC認証を設定

ディレクトリに「.htaccess」と「.htpasswd」を作成・編集

.htaccess
AuthUserFile /home/users/2/xxxxxxxx/web/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
.htpasswd
id:pass

VolleyでBASIC認証

今日は、ここで少しハマりました…。

具体的には、getHeadersをオーバーライドすればいいようです。

MapsActivity.kt
            @Throws(AuthFailureError::class)
            override fun getHeaders(): Map<String, String> {
                val params = HashMap<String, String>()
                val creds = String.format("%s:%s", "ユーザーID", "パスワード")
                val auth = "Basic " + Base64.encodeToString(creds.toByteArray(), Base64.DEFAULT)
                params["Authorization"] = auth
                return params
            }

参考サイト:

ベーシック認証が出来るようになったところで、今日はここまで。

0
0
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
0
0