「Google Play Protect」を実際に確認するまでの道のり

Google、新セキュリティサービス「Google Playプロテクト」の提供開始 - iPhone Mania

Android標準の包括的なセキュリティーサービス「Google Play プロテクト」が提供開始!特に操作することなく、自動でウイルスなどをスキャンして削除などの対策をしてくれる - S-MAX

- 2017年7月19日より提供開始
- Google Play サービス 11 以降が必要
- ストア以外のアプリも対象として24時間自動的にスキャンする

今まではどれを使ったらいいのか, 有料版を購入すべきかなど悩んでいた「ウィルススキャンアプリ」ももう不要となるのでしょうか.

まずは, Play サービスのバージョンを確認しておきます.

ややこしいのがスキャン結果の確認方法がいくつかあったりします.

端末の Google Play ストア アプリ を開きます。
メニュー アイコン Menu icon > Play プロテクト アイコン をタップします。

Android – Google Play プロテクト

この位置には「play プロテクトアイコン」がみつかりませんでした.

なので別の方法で.

設定の「Google」→「セキュリティ」内に「Google Play Protect」(日本語環境なら「Google Play プロテクト」)という項目ができます(機種によっては「アプリの確認」などと名称が違うとのこと)。

Android 7.x(開発コード名:Nougat)以降のGalaxyシリーズでは「設定」→「Google」→「セキュリティ」から

Android標準の包括的なセキュリティーサービス「Google Play プロテクト」が提供開始!特に操作することなく、自動でウイルスなどをスキャンして削除などの対策をしてくれる

設定アイコン選択後から適当に進もうとすると迷います.

やっとありました.

アプリを100個くらいいれていましたが現状は問題ないようでした.

追記 2017-09-12: Playストアで表示されるようになっている!

現在 バージョン 8.1.73 で左メニューから簡単に利用できるようになってます.

一度, インストールしている全アプリを更新してみたらいいかもしれませんっ.

→ Android 8.0 Oreo「Picture in Picture」を実際に確認する


【Bluetooth】遠隔操作で写真が撮れる39円ボタン

こんなのあるんですね.



BTで端末とペアリングすれば

ボタンが2つだけの仮想キーボードとして稼働します.


override fun dispatchKeyEvent(event: KeyEvent?): Boolean {
  println("$event")
  return super.dispatchKeyEvent(event)
}


I/System.out: KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_VOLUME_UP, scanCode=115, metaState=0, flags=0x8, repeatCount=0, eventTime=205335386, downTime=205335386, deviceId=9, source=0x101 }
I/System.out: KeyEvent { action=ACTION_UP, keyCode=KEYCODE_VOLUME_UP, scanCode=115, metaState=0, flags=0x8, repeatCount=0, eventTime=205335591, downTime=205335386, deviceId=9, source=0x101 }

I/System.out: KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_ENTER, scanCode=28, metaState=0, flags=0x8, repeatCount=0, eventTime=205340874, downTime=205340874, deviceId=9, source=0x101 }
I/System.out: KeyEvent { action=ACTION_UP, keyCode=KEYCODE_ENTER, scanCode=28, metaState=0, flags=0x8, repeatCount=0, eventTime=205341051, downTime=205340874, deviceId=9, source=0x101 }

よって, 音量UPボタンとエンターボタンの2つの操作を数メートル離れたとこから操作できます.

一方, カメラアプリでは, 音量ボタンでシャッターを切ることができます.

そういうことで自撮りなどに楽しく利用できます.

ちなみに電池は「CR2032 3V」が入ってました.


10個 CR2032 ボタン電池 3v リチウムコイン電池

👉 Amazon Dash Button ってどうなってたっけ? hatena-bookmark


Convert Java File to Kotlin の後に その5 「String Templates」

面倒な文字列の連結.


private static final String SQL_CREATE_ENTRIES =
        "CREATE TABLE " + TasksPersistenceContract.TaskEntry.TABLE_NAME + " (" +
                TasksPersistenceContract.TaskEntry.COLUMN_NAME_ENTRY_ID + TEXT_TYPE + " PRIMARY KEY," +
                TasksPersistenceContract.TaskEntry.COLUMN_NAME_TITLE + TEXT_TYPE + COMMA_SEP +
                TasksPersistenceContract.TaskEntry.COLUMN_NAME_DESCRIPTION + TEXT_TYPE + COMMA_SEP +
                TasksPersistenceContract.TaskEntry.COLUMN_NAME_COMPLETED + BOOLEAN_TYPE +
        " )";

android-architecture/TasksDbHelper.java at todo-mvp · googlesamples/android-architecture

String Templates

「$」マークを使って簡潔に記述できます. ヒアドキュメントのような記述も可能です.

Basic Types - Kotlin Programming Language

これらを使うと上のJavaコードは以下のようになります.


private val SQL_CREATE_ENTRIES =
        """
        CREATE TABLE ${TasksPersistenceContract.TaskEntry.TABLE_NAME} (
            ${TasksPersistenceContract.TaskEntry._ID}$TEXT_TYPE PRIMARY KEY,
            ${TasksPersistenceContract.TaskEntry.COLUMN_NAME_ENTRY_ID}$TEXT_TYPE$COMMA_SEP
            ${TasksPersistenceContract.TaskEntry.COLUMN_NAME_TITLE}$TEXT_TYPE$COMMA_SEP
            ${TasksPersistenceContract.TaskEntry.COLUMN_NAME_DESCRIPTION}$TEXT_TYPE$COMMA_SEP
            ${TasksPersistenceContract.TaskEntry.COLUMN_NAME_COMPLETED}$BOOLEAN_TYPE )
        """

Convert Java File to Kotlin の後に その1「メンバとコンストラクタ」

Convert Java File to Kotlin の後に その2 「apply」

Convert Java File to Kotlin の後に その3 「Null Safety」

Convert Java File to Kotlin の後に その4 「lateinit」

Convert Java File to Kotlin の後に その5 「String Templates」