デベロッパーによる Google マップの基本地図のスタイル設定とカスタマイズを可能にする継続的な取り組みの一環として、この度、Maps SDK for Android 向けの高度なポリラインのスタイル設定の提供を開始することを発表します。この機能は、現在 Google が提供しているポリライン機能の上に構築されています。デベロッパーはこの機能を使って、地図上に表示される定型の線を作成できます。こうした定型の線は、経路、パレードルート、通行止めなどの情報を表すためによく使用されます。ポリラインは、Google Maps Platform のデベロッパーが、ユーザー向けに地図をカスタマイズする際に最もよく使う機能の一つです。
また、Google Play システム アップデートを使って直接アップデートできるモジュールをさらに増やします。これにより、シームレスかつ自動的により多くのシステム コンポーネントをアップグレードしたりバグを修正したりできるようになるため、デベロッパーはアップデートについて気にする必要がなくなります。現在、Android の 30 以上のコンポーネントが Google Play 経由で自動アップデートできる状態になっています。これには、Android 13 の新モジュールである Bluetooth や超広帯域無線(UWB)も含まれています。
そこで、アプリの安全性を高めることを目的として、デベロッパーと連携して、新しい Google Play SDK Index を導入します。これにより、SDK のコードをアプリに組み込む前に、SDK の安全性や信頼性に関するシグナルを確認できるようになります。すべての方が、この仕組みを活用して、アプリのエコシステムのセキュリティとプライバシーを強化することができます。
先月、Google Play で新しいデータ セーフティ セクションのロールアウトを開始しました。これにより、アプリがユーザーのデータをどのように収集、共有、保護する予定であるかを、アプリをインストールする前に知ることができます。また、さらに Play アプリの信頼性向上を促すため、デベロッパーが世界で認知されているモバイルアプリのセキュリティ標準である OWASP の MASVS に照らして、独立してアプリを検証できるようにしました。
Google はたくさんの機能を開発していますが、それをオープンで透過性のある形で行っています。Android 11 では、スマートフォンでプライバシーを保ちながらデジタル ID を使えるようにするプラットフォーム機能についてお知らせしました。これは、ISO 規格に準拠した新機能でした。カード型の免許証(またはその他の身分証明書)を誰かに渡して確認してもらう場合、選択の余地はありません。つまり、相手はフルネーム、生年月日、住所などの個人を特定できる情報(PII)にアクセスできます。モバイル版ならもっと細かい制御が可能で、相手に何を公開するのかをエンドユーザーやアプリが厳密に選択できます。さらに相手も、返されたデータを保持するつもりかどうかを宣言しなければなりません。また、身元を明かすことなく、年齢などの一部の詳細情報を提示することもできます。
直近 2 回の Android リリースでは、この API を改善し、サードパーティ組織がさまざまなデジタル身分証明のユースケースを簡単に利用できるようにしています。運転免許証、学生証、企業のバッジなどがその一例です。ここで、Google Wallet が Android Identity Credential を使ってデジタル ID と運転免許証をサポートすることを発表します。Google は、米国の各州や世界中の政府と連携し、今年中に Wallet でデジタル ID を実現する予定です。Google Wallet の新しい機能強化の詳細については、こちらからご覧ください。
Android による保護
Google は、皆さんのセキュリティとプライバシーはわかりやすく、制御しやすいものであるべきだと考えています。今年は、Android 13 デバイスの設定画面に、デバイスのセキュリティとデータのプライバシーのすべてを管理できる機能をロールアウトする予定です。
public class MainActivity extends AppCompatActivity {
private class PhoneticRetriever implements TextWatcher {
// Extracts phonetic metadata from an incoming text blob
private String getPhoneticMetadata(CharSequence s) {
String phonetic = null;
if (s instanceof SpannableStringBuilder) {
SpannableStringBuilder textAsSpan = (SpannableStringBuilder) s;
TtsSpan[] allSpans = textAsSpan.getSpans(0, s.length(), TtsSpan.class);
if (allSpans.length == 1 && allSpans[0].getType().equals(TtsSpan.TYPE_TEXT)) {
// log shows where the span is in the text
Log.v("PHON",
s.toString() + " [" + textAsSpan.length() + "] start:" +
textAsSpan.getSpanStart(allSpans[0]) + " end:" +
textAsSpan.getSpanEnd(allSpans[0]));
phonetic = allSpans[0].getArgs().getString(TtsSpan.ARG_TEXT);
textAsSpan.removeSpan(allSpans[0]); // avoid consuming again
}
}
return phonetic;
}
@Override
public void afterTextChanged(Editable s) {
String sphonetic = getPhoneticMetadata(s);
if (sphonetic == null) {
// no phonetic data
} else {
// phonetic data is in sphonetic - use it as you like
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
EditText etUserInput = (EditText)findViewById(R.id.editTextPhoneticWithOptions );
etUserInput.addTextChangedListener(new PhoneticRetriever());
}
}
Google は、すべてのユーザーにセキュリティとプライバシーをお届けしたいと考えています。Pixel デバイスがこの認証(Certification)基準以上を確実に満たせるようにしたいと考えているのはそのためです。今後もこの基準を満たすために注力しますので、どうぞご安心ください。Pixel スマートフォンでは、スイッチを入れた瞬間から充実したセキュリティを利用できます。
これが Android エコシステムにとって重要な理由
認証(Certification)はサードパーティによる検証として有用な形態ですが、以下の、Google が 3 C と呼ぶものに該当することがよくあります。
Google はユーザーのプライバシーを最優先に考えていますが、パスワードなどの機密データを扱う機能では特にそれを重視しています。Google 自動入力は Android の自動入力フレームワークがベースになっています。このフレームワークは、厳格かつ不変なプライバシーとセキュリティを遵守し、次の 2 つの場合にのみユーザーの認証情報にアクセスすることを保証します。1)ユーザーが Google アカウントに認証情報をすでに保存している場合。2)Android OS がユーザーに新しい認証情報を保存することを提案し、ユーザーがアカウントに認証情報を保存した場合。
ユーザーが認証情報を操作したとき(フォームに認証情報を入力する、または初めて保存するとき)、Chrome で使われているものと同じプライバシー保護 API を使い、Google が追跡している既知の侵害されたパスワードのリストにその認証情報が含まれていないかを確認します。