AutofillService クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
AutofillService
は、特定のユーザーに代わって画面の内容を自動的に入力するために使用されるサービスです。自動入力の詳細については、「Autofill Framework」を参照してください。
[Android.Runtime.Register("android/service/autofill/AutofillService", ApiSince=26, DoNotGenerateAcw=true)]
public abstract class AutofillService : Android.App.Service
[<Android.Runtime.Register("android/service/autofill/AutofillService", ApiSince=26, DoNotGenerateAcw=true)>]
type AutofillService = class
inherit Service
- 継承
- 属性
注釈
AutofillService
は、特定のユーザーに代わって画面の内容を自動的に入力するために使用されるサービスです。オートフィルの詳細については、「オートフィル フレームワーク」を参照してください。
AutofillService
は、次の場合にのみ、自動入力のために Android システムにバインドされます。 <ol><li>それは、そのマニフェストでアクセス許可をandroid.permission.BIND_AUTOFILL_SERVICE
必要とします。 <li>ユーザーは、Android の設定を使用して明示的に有効にします (意図を Settings#ACTION_REQUEST_SET_AUTOFILL_SERVICE
使用して、このような設定画面を起動できます)。 </Ol>
"BasicUsage"><h3>Basic usage</h3>
基本的なオートフィル プロセスは、次のワークフローによって定義されます。 <ol><li>User focus an editable View
です。 <li>View は を呼び出します AutofillManager#notifyViewEntered(android.view.View)
。 <li>画面内のすべてのビューを表す A ViewStructure
が作成されます。 <li>Android システムはサービスにバインドし、 を呼び出します #onConnected()
。 <li>サービスは を介してビュー構造を #onFillRequest(FillRequest, CancellationSignal, FillCallback)
受け取ります。 <li>サービスは を介して FillCallback#onSuccess(FillResponse)
応答します。 <li>Android システムは、 から を呼び出 #onDisconnected()
してバインドを AutofillService
解除します。 <li>Android システムは、サービスによって送信されるオプションを含むオートフィル UI を表示します。 <li>ユーザーがオプションを選択します。 <li>適切なビューはオートフィルされます。 </Ol>
このワークフローは、Android システムがサービスにバインドされる時間を最小限に抑えるように設計されています。呼び出しごとに、サービスにバインドし、応答を待機し、すぐにバインドを解除します。 さらに、これらの呼び出しはステートレスと見なされます。サービスが呼び出しの間に状態を維持する必要がある場合は、独自の状態管理を行う必要があります (バインドされていないときに、サービスのプロセスが Android システムによって強制終了される可能性があることに注意してください。たとえば、デバイスがメモリ不足で実行されている場合)。
通常、 #onFillRequest(FillRequest, CancellationSignal, FillCallback)
will: <ol><li>オートフィル可能なビューを探すビュー構造を解析します (たとえば、 を使用します android.app.assist.AssistStructure.ViewNode#getAutofillHints()
)。 <li>オートフィル可能なビューをユーザーのデータと照合します。 <li>これらのフィールドに Dataset
一致するユーザーのデータのセットごとに を作成します。 <li>データセットに適切な AutofillId
と AutofillValue
を入力します。 <li>に渡された FillCallback#onSuccess(FillResponse)
にデータセットをFillResponse
追加します。 </Ol>
たとえば、ユーザーがサービスにアカウントを 1 つだけ持っているユーザー名とパスワード ビューを含むログイン画面の場合、応答は次のようになります。
new FillResponse.Builder()
.addDataset(new Dataset.Builder()
.setValue(id1, AutofillValue.forText("homer"), createPresentation("homer"))
.setValue(id2, AutofillValue.forText("D'OH!"), createPresentation("password for homer"))
.build())
.build();
ただし、ユーザーが代わりに 2 つのアカウントを持っていた場合、応答は次のようになります。
new FillResponse.Builder()
.addDataset(new Dataset.Builder()
.setValue(id1, AutofillValue.forText("homer"), createPresentation("homer"))
.setValue(id2, AutofillValue.forText("D'OH!"), createPresentation("password for homer"))
.build())
.addDataset(new Dataset.Builder()
.setValue(id1, AutofillValue.forText("flanders"), createPresentation("flanders"))
.setValue(id2, AutofillValue.forText("OkelyDokelyDo"), createPresentation("password for flanders"))
.build())
.build();
ビュー構造で自動入力可能なビューが見つからない場合は、 にFillCallback#onSuccess(FillResponse)
渡すnull
必要があります。サービスで要求の処理中にエラーが発生した場合は、 を呼び出すFillCallback#onFailure(CharSequence)
必要があります。 パフォーマンス上の理由から、サービスが受信したごとに #onFillRequest(FillRequest, CancellationSignal, FillCallback)
または FillCallback#onFailure(CharSequence)
をFillCallback#onSuccess(FillResponse)
呼び出すのが最も重要です。呼び出されない場合、要求は最終的にタイムアウトし、Android システムによって破棄されます。
"SavingUserData"><h3>Saving user data</h3>
サービスがユーザーによって入力されたデータの保存にも関心がある場合は、 に FillResponse
オブジェクトをSaveInfo
設定する必要があります。 詳細と例については、以下を参照してください SaveInfo
。
"UserAuthentication"><h3>User authentication</h3>
このサービスは、アプリを自動入力する前にユーザーに認証を要求することで、追加のセキュリティを提供できます。 認証は、通常、2 つのシナリオで必要です。 <ul><li>ユーザー データのロックを解除するには (たとえば、メインパスワードまたは指紋認証を使用する) - を参照してくださいFillResponse.Builder#setAuthentication(AutofillId[], android.content.IntentSender, android.widget.RemoteViews)
。 <li>特定のデータセットのロックを解除するには (クレジット カードに CVC を指定するなど) - を参照してくださいDataset.Builder#setAuthentication(android.content.IntentSender)
。 </ul>
認証を使用する場合は、機密データのみを暗号化し、ラベルは暗号化されていない状態にしておくことをお勧めします。そのため、ラベルはプレゼンテーション ビューで使用できます。 たとえば、ユーザーが自宅と職場の住所を持っている場合、 Home
アドレス データ自体は暗号化されたストレージに格納できる一方で、 ラベルと Work
ラベルは暗号化されずに保存する必要があります (機密データがないため)。 その後、ユーザーがデータセットを Home
選択すると、プラットフォームによって認証フローが開始され、サービスは機密データの暗号化を解除できます。
認証メカニズムは、サービスが画面を埋めることができるデータセットを決定するために複数の手順が必要なシナリオでも使用できます。 たとえば、ユーザーが複数の銀行のアカウントを持つ金融アプリを自動入力する場合、ワークフローは次のようになります。
<ol><li>1 つ目 FillResponse
には、金融アプリの資格情報を含むデータセットと、"銀行アプリの資格情報についてここをタップ" というプレゼンテーションの "偽" データセットが含まれています。 <li>ユーザーが偽のデータセットを選択すると、サービスは使用可能な銀行アプリを含むダイアログを表示します。 <li>ユーザーが銀行アプリを選択すると、その銀行のデータセットを含む新しい FillResponse
サービスが応答します。 </Ol>
複数ステップのデータセットを選択するもう 1 つの例は、サービスがユーザー資格情報を "コンテナー" に格納する場合です。最初の応答にはコンテナー名を持つ偽のデータセットが含まれており、後続の応答にはそのコンテナーに格納されているアプリ資格情報が含まれます。
"DataPartioning"><h3>Data partitioning</h3>
画面のオートフィル可能なビューは、"パーティション" と呼ばれる論理グループにグループ化する必要があります。 一般的なパーティションは、 <ul><li>Credentials (ユーザー名/電子メール アドレス、パスワード) です。 <li>アドレス (道路、市区町村、州、郵便番号など)。 <li>支払い情報 (クレジット カード番号、有効期限、確認コード)。 </ul>
セキュリティ上の理由から、画面に複数のパーティションがある場合、データセットの内容が複数のパーティションを生成しないことが最も重要です。特に、いずれかのパーティションに、自動入力されるアプリケーションに固有ではないデータが含まれている場合です。 たとえば、データセットには、ユーザー名、パスワード、クレジットカード情報のフィールドを含めないようにします。 このルールの理由は、悪意のあるアプリがクレジット カード フィールドが表示されないビュー構造を下書きする可能性があるため、ユーザーがユーザー名 UI からデータセットを選択すると、クレジット カード情報はユーザーの知らないうちにアプリケーションにリリースされます。 同様に、データセット認証を要求して機密情報を含むデータセットを常に保護し (「」を参照)Dataset.Builder#setAuthentication(android.content.IntentSender)
、mdash の "セカンダリ" フィールドのカスタム プレゼンテーションにパーティションの "プライマリ" フィールドに関する情報を含&することをお勧めします。これにより、悪意のあるアプリは、ユーザーがリリースされていることを認識せずに "プライマリ" フィールドを取得できなくなります (たとえば、悪意のあるアプリでは、クレジット カード番号、検証コード、有効期限のフィールドが、後者だけが表示されるように作成される可能性があります。有効期限が特定のクレジット カード番号に関連付けられていることを明示的に示すことによって、 サービスは、ユーザーがそのフィールドを選択したときにリリースされる内容をチェックするための視覚的な手掛かりを提供します)。
サービスは、画面に複数のパーティションがあることを検出すると、要求を発生させたパーティションのデータセット (つまり、 が返されるパーティション) のみを含む を返FillResponse
true
す必要があります。その後、ユーザーがandroid.app.assist.AssistStructure.ViewNode
android.app.assist.AssistStructure.ViewNode#isFocused()
別のパーティションからフィールドを選択すると、Android システムはそのパーティションに対して別#onFillRequest(FillRequest, CancellationSignal, FillCallback)
の呼び出しを行います。
ユーザーがサービスによって提供されるデータを使用してパーティションを自動入力し、ユーザーがこれらのフィールドを変更しなかった場合、自動入力された値は後続の呼び出しでサービスに返送されます (および を呼び出 android.app.assist.AssistStructure.ViewNode#getAutofillValue()
すことで取得できます)。 これは、サービスが前のパーティションで行われた選択に基づいてパーティションのデータセットを作成する必要がある場合に役立ちます。 たとえば、資格情報とアドレス パーティションを持つ画面の 1 番目の応答は次のようになります。
new FillResponse.Builder()
.addDataset(new Dataset.Builder() // partition 1 (credentials)
.setValue(id1, AutofillValue.forText("homer"), createPresentation("homer"))
.setValue(id2, AutofillValue.forText("D'OH!"), createPresentation("password for homer"))
.build())
.addDataset(new Dataset.Builder() // partition 1 (credentials)
.setValue(id1, AutofillValue.forText("flanders"), createPresentation("flanders"))
.setValue(id2, AutofillValue.forText("OkelyDokelyDo"), createPresentation("password for flanders"))
.build())
.setSaveInfo(new SaveInfo.Builder(SaveInfo.SAVE_DATA_TYPE_PASSWORD,
new AutofillId[] { id1, id2 })
.build())
.build();
次に、ユーザーが を選択したflanders
場合、サービスはフィールドid1
の値とid2
事前設定された新しい#onFillRequest(FillRequest, CancellationSignal, FillCallback)
呼び出しを取得するため、サービスは Flanders アカウントのアドレスをフェッチし、アドレス パーティションに対して次FillResponse
を返します。
new FillResponse.Builder()
.addDataset(new Dataset.Builder() // partition 2 (address)
.setValue(id3, AutofillValue.forText("744 Evergreen Terrace"), createPresentation("744 Evergreen Terrace")) // street
.setValue(id4, AutofillValue.forText("Springfield"), createPresentation("Springfield")) // city
.build())
.setSaveInfo(new SaveInfo.Builder(SaveInfo.SAVE_DATA_TYPE_PASSWORD | SaveInfo.SAVE_DATA_TYPE_ADDRESS,
new AutofillId[] { id1, id2 }) // username and password
.setOptionalIds(new AutofillId[] { id3, id4 }) // state and zipcode
.build())
.build();
サービスが複数 FillResponse
を返すと、最後のが前のをオーバーライドします。そのため、上記の SaveInfo
2 番目の要求の には両方のパーティションの情報があります。
"PackageVerification"><h3>パッケージ検証</h3>
アプリ固有のデータ (ユーザー名やパスワードなど) を自動入力する場合、サービスは、自動入力されるアプリのすべての署名証明書を取得して要求の信頼性を確認し、データが mdash に最初に保存されたときに取得された値と一致する場合にのみ要求 &満たす必要があります。このような検証は、別のアプリの同じパッケージ名を持つデバイスにサイドロードされたアプリによるフィッシング詐欺を回避するために必要です。 署名証明書をハッシュすることによってこれを実現する方法の例を次に示します。
private String getCertificatesHash(String packageName) throws Exception {
PackageManager pm = mContext.getPackageManager();
PackageInfo info = pm.getPackageInfo(packageName, PackageManager.GET_SIGNATURES);
ArrayList<String> hashes = new ArrayList<>(info.signatures.length);
for (Signature sig : info.signatures) {
byte[] cert = sig.toByteArray();
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(cert);
hashes.add(toHexString(md.digest()));
}
Collections.sort(hashes);
StringBuilder hash = new StringBuilder();
for (int i = 0; i < hashes.size(); i++) {
hash.append(hashes.get(i));
}
return hash.toString();
}
サービスが署名証明書データを初めて mdash に保存 &保存しなかった場合。たとえば、データは、autofill Framework &mdash を使用しなかった以前のバージョンのアプリによって作成されたためです。サービスは、アプリの信頼性を確認できないことをユーザーに警告する必要があります (以下の Web セキュリティ セクションでこのような警告を表示する方法の例を参照してください)、ユーザーが同意した場合、サービスは今後使用するために署名証明書からデータを保存できます。
"IgnoringViews"><h3>ビュー</h3 の無視>
サービスが自動入力できないビュー (Captcha チャレンジへの応答を表すテキスト フィールドなど) を見つけた場合は、 を呼び出 FillResponse.Builder#setIgnoredIds(AutofillId...)
してそれらのビューを無視としてマークする必要があります。これにより、これらのビューにフォーカスがあるときにシステムが新しい #onFillRequest(FillRequest, CancellationSignal, FillCallback)
ビューをトリガーしないようにする必要があります。
"WebSecurity"><h3>Web security</h3>
Web ページを表す自動入力要求を処理する場合 (通常はルートが である構造体を表示する)、サービスはandroid.webkit.WebView
次のandroid.app.assist.AssistStructure.ViewNode#getClassName()
手順を実行して、その構造を要求するアプリに関連付けられているデータで自動入力できるかどうかを確認する必要があります。
<ol><li>ドキュメントの android.app.assist.AssistStructure.ViewNode#getWebDomain()
ソースを取得するには、 を使用します。 <li>パブリック サフィックス リスト を使用して正規ドメインを取得します (下記の例を参照)。 <li>デジタル資産リンク を使用して、正規ドメインに対応するパッケージのパッケージ名と証明書フィンガープリントを取得します。 <li>証明書のフィンガープリントがパッケージ マネージャーによって返される値と一致していることを確認します (上記の「パッケージ検証」セクションを参照してください)。 </Ol>
Guava を使用して正規ドメインを取得する方法の例を次に示します。
private static String getCanonicalDomain(String domain) {
InternetDomainName idn = InternetDomainName.from(domain);
while (idn != null && !idn.isTopPrivateDomain()) {
idn = idn.parent();
}
return idn == null ? null : idn.toString();
}
"WebSecurityDisclaimer">
上記の手順で Web ドメインとアプリ パッケージの間の関連付けを検証できないが、Web ドメインに格納されている永続化された資格情報を入力することが適切であるとサービスが考える場合、サービスは最初にデータ漏洩の可能性についてユーザーに警告し、ユーザーに確認を求める必要があります。 たとえば、サービスでは次の場合があります。
<ol><li>ロックを解除する必要 Dataset.Builder#setAuthentication(android.content.IntentSender) authentication
があるデータセットを作成します。 <li>のカスタム プレゼンテーションに Web ドメインを Dataset.Builder#setValue(AutofillId, AutofillValue, android.widget.RemoteViews) dataset value
含めます。 <li>ユーザーがそのデータセットを選択すると、アプリが Web ドメインの資格情報を要求していることを説明する免責事項ダイアログが表示されますが、サービスはアプリがそのドメインを所有しているかどうかを確認できませんでした。 ユーザーが同意した場合、サービスはデータセットのロックを解除できます。 <li>同様に、要求のオブジェクトを SaveInfo
追加する場合、サービスは 上記の免責事項を SaveInfo.Builder#setDescription(CharSequence)
に含める必要があります。 </Ol>
この同じプロシージャは、オートフィル可能なデータが 内にIFRAME
格納されている場合にも使用できます。この場合、 内のノードIFRAME
にフォーカスがあるときに WebView によって新しいオートフィル コンテキストが生成され、ルート ノードには に android.app.assist.AssistStructure.ViewNode#getWebDomain()
の src
属性が含まれますIFRAME
。 このシナリオの一般的で正当なユース ケースは、ユーザーが異なる銀行口座にログインできるようにする金融アプリです。 たとえば、財務アプリmy_financial_app
では、 からbanklogin.my_financial_app.com
コンテンツを読み込む WebView を使用できます。この WebView には、 属性が であるノードがsrc
login.some_bank.com
含まれますIFRAME
。 その要求を満たす場合、サービスは、プレゼンテーションに "some_bank.comのユーザー名" と "some_bank.com のパスワード" と表示される を追加 Dataset.Builder#setAuthentication(android.content.IntentSender) authenticated dataset
できます。 次に、ユーザーがこれらのオプションのいずれかをタップすると、そのオプションを選択すると資格情報my_financial_app
が に解放login.some_bank.com
されることを説明する免責事項ダイアログが表示されます。ユーザーが同意すると、サービスは資格情報を含むロック解除されたデータセットをsome_bank.com
返します。
<b>注:</b> 自動入力サービスは、既知のブラウザー アプリを許可リストに追加し、サービスが署名証明書を確認してブラウザー アプリの信頼性を確認できる限り、上記の検証をスキップすることもできます。
"MultipleStepsSave"><h3>データが複数の画面<に分割されたときの保存/h3>
アプリは、多くの場合、同じアクティビティの複数の画面でユーザー データを分割します。特に、新しいユーザー アカウントの作成に使用されるアクティビティで使用されます。 たとえば、最初の画面でユーザー名を要求し、ユーザー名が使用可能な場合は、2 番目の画面に移動し、パスワードを要求します。
このような状況では自動入力の保存を処理するのは難しいです。オートフィル サービスは、オートフィルの保存 UI を表示する前に、ユーザーが両方のフィールドに入るまで待機する必要があるためです。 ただし、次の手順に従って行うことができます。
<ol><li>最初 #onFillRequest(FillRequest, CancellationSignal, FillCallback) fill request
の では、サービスは応答に を FillResponse.Builder#setClientState(android.os.Bundle) client state bundle
追加し、画面に存在する部分フィールドの自動入力 ID を含みます。 <li>2 番目 #onFillRequest(FillRequest, CancellationSignal, FillCallback) fill request
の では、サービスは を取得 FillRequest#getClientState() client state bundle
し、前の要求で設定された自動入力 ID をクライアント状態から取得し、これらの ID と SaveInfo#FLAG_SAVE_ON_ALL_VIEWS_INVISIBLE
を 2 番目の応答で使用される に SaveInfo
追加します。 <li>では、 #onSaveRequest(SaveRequest, SaveCallback) save request
サービスは 適切な FillContext fill contexts
を使用して各フィールドの値を取得します (fill 要求ごとに 1 つの塗りつぶしコンテキストがあります)。 </Ol>
たとえば、ユーザー名フィールドとパスワード フィールドに 2 つの手順を使用するアプリでは、ワークフローは次のようになります。
// On first fill request
AutofillId usernameId = // parse from AssistStructure;
Bundle clientState = new Bundle();
clientState.putParcelable("usernameId", usernameId);
fillCallback.onSuccess(
new FillResponse.Builder()
.setClientState(clientState)
.setSaveInfo(new SaveInfo
.Builder(SaveInfo.SAVE_DATA_TYPE_USERNAME, new AutofillId[] {usernameId})
.build())
.build());
// On second fill request
Bundle clientState = fillRequest.getClientState();
AutofillId usernameId = clientState.getParcelable("usernameId");
AutofillId passwordId = // parse from AssistStructure
clientState.putParcelable("passwordId", passwordId);
fillCallback.onSuccess(
new FillResponse.Builder()
.setClientState(clientState)
.setSaveInfo(new SaveInfo
.Builder(SaveInfo.SAVE_DATA_TYPE_USERNAME | SaveInfo.SAVE_DATA_TYPE_PASSWORD,
new AutofillId[] {usernameId, passwordId})
.setFlags(SaveInfo.FLAG_SAVE_ON_ALL_VIEWS_INVISIBLE)
.build())
.build());
// On save request
Bundle clientState = saveRequest.getClientState();
AutofillId usernameId = clientState.getParcelable("usernameId");
AutofillId passwordId = clientState.getParcelable("passwordId");
List<FillContext> fillContexts = saveRequest.getFillContexts();
FillContext usernameContext = fillContexts.get(0);
ViewNode usernameNode = findNodeByAutofillId(usernameContext.getStructure(), usernameId);
AutofillValue username = usernameNode.getAutofillValue().getTextValue().toString();
FillContext passwordContext = fillContexts.get(1);
ViewNode passwordNode = findNodeByAutofillId(passwordContext.getStructure(), passwordId);
AutofillValue password = passwordNode.getAutofillValue().getTextValue().toString();
save(username, password);
"Privacy"><h3>Privacy</h3>
メソッドは #onFillRequest(FillRequest, CancellationSignal, FillCallback)
、ユーザー コンテンツなしで呼び出されます。 Android システムは、この呼び出しに渡された の android.app.assist.AssistStructure.ViewNode view nodes
一部のプロパティを削除しますが、それらのすべてではありません。 たとえば、 によってandroid.webkit.WebView
設定されたオブジェクトに指定されたandroid.view.ViewStructure.HtmlInfo
データが削除されることはありません。
このデータには PII (ユーザー名や電子メール アドレスなど、個人を特定できる情報) が含まれている可能性があるため、サービスはヒューリスティックの目的でローカル (つまりアプリのプロセス) でのみ使用する必要がありますが、外部サーバーに送信しないでください。
"FieldClassification"><h3>Metrics and field classification</h3>
サービスは を呼び出 #getFillEventHistory()
してユーザー アクションを表すメトリックを取得し、これらのメトリックを使用してヒューリスティックを改善できます。
Android android.os.Build.VERSION_CODES#P
より前のメトリックでは、サービスがアクティビティを自動入力する方法を知っていたシナリオのみを対象としましたが、Android android.os.Build.VERSION_CODES#P
ではフィールド分類と呼ばれる新しいメカニズムが導入されました。これにより、サービスはサービスによって認識されている既存のユーザー データに基づいてフィールドの意味を動的に分類できます。
通常、フィールド分類は、mdash&特定のアプリに関連付けられていないユーザー データで自動入力できるフィールドを検出するために使用できます。電子メールや物理アドレスなど。 このようなフィールドがユーザーによって手動で入力されたことがサービスによって識別されると、サービスはこのシグナルを使用して、後続の要求のヒューリスティックを向上させることができます (たとえば、既知のフィールドに関連付けられているリソース ID を推測するなど)。
フィールド分類ワークフローには、次の 4 つの手順が含まれます。
<ol><li>を使用してユーザー データを AutofillManager#setUserData(UserData)
設定します。 このデータは、システムが再起動するまで (またはサービスが無効になっている) までキャッシュされるため、すべての要求に対して設定する必要はありません。 <li>を呼び出 FillResponse.Builder#setFieldClassificationIds(AutofillId...)
して分析する必要があるフィールドを特定します。 <li>を使用して結果を FillEventHistory.Event#getFieldsClassification()
確認します。 <li>結果を使用して、後続の要求で または SaveInfo
オブジェクトを動的に作成Dataset
します。 </Ol>
フィールド分類はコストの高い操作であり、慎重に使用する必要があります。そうしないと、レート制限に達し、Android システムによってブロックされる可能性があります。 理想的には、サービスがアクティビティの自動入力方法を判断できないが、疑わしいことが強い場合にだけ使用する必要があります。 たとえば、アクティビティに 4 つ以上のフィールドがあり、そのうちの 1 つがリストである場合、これらは住所フィールド (住所、市区町村、州、郵便番号など) である可能性があります。
"CompatibilityMode"><h3>互換モード</h3>
標準の Android ウィジェットを使用するアプリでは、すぐに使用できるオートフィルがサポートされており、ユーザー エクスペリエンスを向上させるためにはほとんど必要ありません (オートフィル可能なビューに注釈を付け、自動入力ヒントを提供します)。 ただし、一部のアプリ (通常はブラウザー) は独自のレンダリングを行い、レンダリングされたコンテンツには、自動入力フレームワークに表示する必要があるセマンティック構造が含まれている場合があります。 プラットフォームでは、これを実現するために API が公開されますが、これらのアプリが自動入力サポートを実装するまでに時間がかかる場合があります。
このようなアプリの自動入力を有効にするために、プラットフォームは互換性モードを提供します。プラットフォームはアクセシビリティ API にフォールバックして、サービスの自動入力とデータの入力に報告された状態を生成します。 このモードは、指定された最大バージョン コードまでの特定のパッケージに対して明示的に要求する必要があります。これにより、ターゲット アプリがネイティブに自動入力をサポートし始めたときに、移行パスクリーン許可されます。 互換性を有効にすると、ターゲット パッケージのパフォーマンスが低下する可能性があるため、注意して使用する必要があることに注意してください。 プラットフォームでは、互換性モードでターゲットにできるパッケージを含める許可リストの作成がサポートされています。このモードは、必要なときにのみ必要な場合にのみ使用されます。
サービスに関連付けられているメタ データ リソースに関心のあるパッケージの互換性モードを要求できます。 サービス宣言の例を次に示します。
<service android:name=".MyAutofillService"
android:permission="android.permission.BIND_AUTOFILL_SERVICE">
<intent-filter>
<action android:name="android.service.autofill.AutofillService" />
</intent-filter>
<meta-data android:name="android.autofill" android:resource="@xml/autofillservice" />
</service>
XML ファイルでは、互換モードを有効にする 1 つ以上のパッケージを指定できます。 メタデータ宣言の例を次に示します。
<autofill-service xmlns:android="http://schemas.android.com/apk/res/android">
<compatibility-package android:name="foo.bar.baz" android:maxLongVersionCode="1000000000"/>
</autofill-service>
互換性モードには、 <ul><li>手動の自動入力要求がないなどの制限があることに注意してください。 したがって、 には FillRequest
FillRequest#getFlags() flags
フラグがありません FillRequest#FLAG_MANUAL_REQUEST
。 <li>パスワード フィールドの値は、mdash&マスクされる可能性が最も高いです。たとえば、 ****
ではなく 1234
です。 そのため、これらの値を使用する場合は、無効な入力でユーザー データが更新されないように注意する必要があります。 たとえば、 をFillRequest
解析してパスワード フィールドを検出すると、そのフィールドにパスワード フラグがある場合android.app.assist.AssistStructure.ViewNode#getInputType() input type
にチェックし、存在する場合はオブジェクトにSaveInfo
追加しないでください。 <li>オートフィル コンテキストは、HTML フォームが送信されるときに常にとは限 AutofillManager#commit() committed
りません。 そのため、フラグの設定や の使用など、他のメカニズムを使用してSaveInfo.Builder#setTriggerId(AutofillId)
保存をSaveInfo#FLAG_SAVE_ON_ALL_VIEWS_INVISIBLE
トリガーするSaveInfo.Builder#setFlags(int)
必要があります。 <li>ブラウザーは、多くの場合、独自のオートフィル管理システムを提供します。 ブラウザーとプラットフォームの両方が同時に自動入力ダイアログをレンダリングすると、結果がユーザーを混乱させる可能性があります。 このようなブラウザーでは、通常、ユーザーが自動入力を無効にするためのオプションが提供されるため、サービスでは、ユーザーが特定のアプリの互換性モードを無効にすることも許可する必要があります。 これにより、mdash の自動入力メカニズムをユーザーが決定&。ブラウザーまたはプラットフォームの&mdash。を使用する必要があります。 </ul>
の android.service.autofill.AutofillService
Java ドキュメント。
このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。
コンストラクター
AutofillService() |
|
AutofillService(IntPtr, JniHandleOwnership) |
|
フィールド
AccessibilityService |
を |
AccountService |
を |
ActivityService |
グローバル システム状態と |
AlarmService |
を |
AppOpsService |
を |
AppSearchService |
を |
AppwidgetService |
AppWidgets にアクセスするための を |
AudioService |
ボリューム、呼び出し音モード、オーディオ ルーティングの管理を処理するための を |
BatteryService |
と を |
BindAllowActivityStarts |
古い.
フラグ: |
BindExternalServiceLong |
と同じように |
BindNotPerceptible |
古い.
フラグ: |
BindSharedIsolatedProcess |
古い.
フラグ: |
BiometricService |
|
BlobStoreService |
を |
BluetoothService |
と を |
BugreportService |
バグレポートをキャプチャするサービス。 (継承元 Context) |
CameraService |
と |
CaptioningService |
と |
CarrierConfigService |
と |
ClipboardService |
を |
CompanionDeviceService |
と を |
ConnectivityDiagnosticsService |
を |
ConnectivityService |
ネットワーク接続の管理を処理するための を |
ConsumerIrService |
を |
CredentialService |
を |
CrossProfileAppsService |
クロス プロファイル操作の を取得するには、 |
DeviceIdDefault |
既定のデバイス ID。これはプライマリ (非仮想) デバイスの ID です。 (継承元 Context) |
DeviceIdInvalid |
デバイス ID が無効です。 (継承元 Context) |
DeviceLockService |
を |
DevicePolicyService |
|
DisplayHashService |
にアクセス |
DisplayService |
と |
DomainVerificationService |
にアクセス |
DownloadService |
と を |
DropboxService |
診断ログを記録するためのインスタンスを取得するには、 |
EuiccService |
を |
ExtraFillResponse |
遅延した塗りつぶし応答を |
FileIntegrityService |
を |
FingerprintService |
|
GameService |
を |
GrammaticalInflectionService |
を |
HardwarePropertiesService |
ハードウェア プロパティ サービスにアクセスするための を |
HealthconnectService |
を |
InputMethodService |
と を |
InputService |
と |
IpsecService |
を |
JobSchedulerService |
と を |
KeyguardService |
キーガードを制御するための を取得するには、 |
LauncherAppsService |
を |
LayoutInflaterService |
を |
LocaleService |
を |
LocationService |
を |
MediaCommunicationService |
を |
MediaMetricsService |
を |
MediaProjectionService |
メディア プロジェクション セッションを管理するためのインスタンスを |
MediaRouterService |
メディアのルーティングを制御および管理するための を |
MediaSessionService |
メディア セッションを管理するための を |
MidiService |
と を |
NetworkStatsService |
と を |
NfcService |
NFC を使用するための を取得するには、 |
NotificationService |
|
NsdService |
と |
OverlayService |
と を |
PeopleService |
を |
PerformanceHintService |
パフォーマンス ヒント サービスにアクセスするための を |
PowerService |
|
PrintService |
|
ReceiverExported |
古い.
フラグ: |
ReceiverNotExported |
古い.
フラグ: |
ReceiverVisibleToInstantApps |
古い.
フラグ: |
RestrictionsService |
と |
RoleService |
ロールを管理するための を取得するには、 |
SearchService |
と を |
SensorService |
と を |
ServiceInterface |
|
ServiceMetaData |
AutoFillService コンポーネントが自身に関する情報を公開する名前。 |
ShortcutService |
ランチャー ショートカット サービスにアクセスするための を |
StatusBarService |
と |
StopForegroundDetach |
古い.
の |
StopForegroundLegacy |
の |
StopForegroundRemove |
古い.
|
StorageService |
を |
StorageStatsService |
を |
SystemHealthService |
を |
TelecomService |
を |
TelephonyImsService |
を |
TelephonyService |
を |
TelephonySubscriptionService |
を |
TextClassificationService |
テキスト分類サービスの を取得するには、 |
TextServicesManagerService |
を |
TvInputService |
を |
TvInteractiveAppService |
を |
UiModeService |
と を |
UsageStatsService |
と を |
UsbService |
を |
UserService |
を |
VibratorManagerService |
|
VibratorService |
と |
VirtualDeviceService |
を |
VpnManagementService |
プラットフォームの組み込み VPN のプロファイルを管理する を取得 |
WallpaperService |
と を |
WifiAwareService |
を |
WifiP2pService |
を |
WifiRttRangingService |
|
WifiService |
|
WindowService |
を |
プロパティ
Application |
このサービスを所有するアプリケーションを返します。 (継承元 Service) |
ApplicationContext |
現在のプロセスの単一のグローバル Application オブジェクトのコンテキストを返します。 (継承元 ContextWrapper) |
ApplicationInfo |
このコンテキストのパッケージの完全なアプリケーション情報を返します。 (継承元 ContextWrapper) |
Assets |
アプリケーションのパッケージの AssetManager インスタンスを返します。 (継承元 ContextWrapper) |
AttributionSource |
|
AttributionTag |
属性は、複雑なアプリで使用して、アプリの一部を論理的に分離できます。 (継承元 Context) |
BaseContext | (継承元 ContextWrapper) |
CacheDir |
ファイルシステム上のアプリケーション固有のキャッシュ ディレクトリへの絶対パスを返します。 (継承元 ContextWrapper) |
Class |
この |
ClassLoader |
このパッケージ内のクラスを取得するために使用できるクラス ローダーを返します。 (継承元 ContextWrapper) |
CodeCacheDir |
キャッシュされたコードを格納するために設計されたファイルシステム上のアプリケーション固有のキャッシュ ディレクトリへの絶対パスを返します。 (継承元 ContextWrapper) |
ContentResolver |
アプリケーションのパッケージの ContentResolver インスタンスを返します。 (継承元 ContextWrapper) |
DataDir |
|
DeviceId |
このコンテキストが関連付けられているデバイス ID を取得します。 (継承元 Context) |
Display |
このコンテキストが関連付けられている表示を取得します。 (継承元 Context) |
ExternalCacheDir |
プライマリ外部ファイルシステム (アプリケーションが所有するキャッシュ ファイルを配置できる場所) 上 ExternalStorageDirectory のディレクトリへの絶対パスを返します。 (継承元 ContextWrapper) |
FilesDir |
で作成されたファイルが格納されているファイル システム上のディレクトリへの絶対パスを OpenFileOutput(String, FileCreationMode) 返します。 (継承元 ContextWrapper) |
FillEventHistory |
最後の後に発生したイベントを取得します |
ForegroundServiceType |
を呼び出してサービスがフォアグラウンド サービスになった場合 |
Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
IsDeviceProtectedStorage |
|
IsRestricted |
このコンテキストが制限されているかどうかを示します。 (継承元 Context) |
IsUiContext |
|
JniIdentityHashCode |
|
JniPeerMembers |
|
MainExecutor |
このコンテキストに |
MainLooper |
現在のプロセスのメイン スレッドの Looper を返します。 (継承元 ContextWrapper) |
NoBackupFilesDir |
のようなファイルシステム上のディレクトリへの絶対パスを FilesDir返します。 (継承元 ContextWrapper) |
ObbDir |
このアプリケーションの OBB ファイル (存在する場合) が見つかるプライマリ外部ストレージ ディレクトリを返します。 (継承元 ContextWrapper) |
OpPackageName |
このコンテキストからの呼び出しに |
PackageCodePath |
このコンテキストのプライマリ Android パッケージへの完全なパスを返します。 (継承元 ContextWrapper) |
PackageManager |
PackageManager インスタンスを返して、グローバル パッケージ情報を検索します。 (継承元 ContextWrapper) |
PackageName |
このアプリケーションのパッケージの名前を返します。 (継承元 ContextWrapper) |
PackageResourcePath |
このコンテキストのプライマリ Android パッケージへの完全なパスを返します。 (継承元 ContextWrapper) |
Params |
このコンテキストが を介して作成された場合は、 で作成されたパラメーターのセットを |
PeerReference |
|
Resources |
アプリケーションのパッケージの Resources インスタンスを返します。 (継承元 ContextWrapper) |
Theme |
このコンテキストに関連付けられている Theme オブジェクトを返します。 (継承元 ContextWrapper) |
ThresholdClass |
|
ThresholdType |
|
Wallpaper | (継承元 ContextWrapper) |
WallpaperDesiredMinimumHeight | (継承元 ContextWrapper) |
WallpaperDesiredMinimumWidth | (継承元 ContextWrapper) |
メソッド
AttachBaseContext(Context) |
この ContextWrapper の基本コンテキストを設定します。 (継承元 ContextWrapper) |
BindService(Intent, Bind, IExecutor, IServiceConnection) |
|
BindService(Intent, Context+BindServiceFlags, IExecutor, IServiceConnection) |
|
BindService(Intent, IServiceConnection, Bind) |
アプリケーション サービスに接続し、必要に応じて作成します。 (継承元 ContextWrapper) |
BindService(Intent, IServiceConnection, Context+BindServiceFlags) |
|
BindServiceAsUser(Intent, IServiceConnection, Context+BindServiceFlags, UserHandle) |
|
BindServiceAsUser(Intent, IServiceConnection, Int32, UserHandle) |
と同じ方法 |
CheckCallingOrSelfPermission(String) |
IPC の呼び出しプロセス か 、特定のアクセス許可が付与されているかどうかを判断します。 (継承元 ContextWrapper) |
CheckCallingOrSelfUriPermission(Uri, ActivityFlags) |
IPC の呼び出しプロセス か 、特定の URI にアクセスするためのアクセス許可が付与されているかどうかを判断します。 (継承元 ContextWrapper) |
CheckCallingOrSelfUriPermissions(IList<Uri>, Int32) |
IPC <em>または you</em> の呼び出しプロセスに URI の一覧へのアクセス許可が付与されているかどうかを確認します。 (継承元 Context) |
CheckCallingPermission(String) |
処理している IPC の呼び出しプロセスに特定のアクセス許可が付与されているかどうかを確認します。 (継承元 ContextWrapper) |
CheckCallingUriPermission(Uri, ActivityFlags) |
呼び出し元のプロセスとユーザー ID に、特定の URI にアクセスするためのアクセス許可が付与されているかどうかを確認します。 (継承元 ContextWrapper) |
CheckCallingUriPermissions(IList<Uri>, Int32) |
呼び出し元のプロセスとユーザー ID に URI の一覧にアクセスするためのアクセス許可が付与されているかどうかを確認します。 (継承元 Context) |
CheckPermission(String, Int32, Int32) |
システムで実行されている特定のプロセスとユーザー ID に対して、指定されたアクセス許可が許可されているかどうかを判断します。 (継承元 ContextWrapper) |
CheckSelfPermission(String) |
|
CheckUriPermission(Uri, Int32, Int32, ActivityFlags) |
特定のプロセスとユーザー ID に、特定の URI にアクセスするためのアクセス許可が付与されているかどうかを判断します。 (継承元 ContextWrapper) |
CheckUriPermission(Uri, String, String, Int32, Int32, ActivityFlags) |
Uri と通常のアクセス許可の両方を確認します。 (継承元 ContextWrapper) |
CheckUriPermissions(IList<Uri>, Int32, Int32, Int32) |
URI の一覧にアクセスするためのアクセス許可が特定のプロセスとユーザー ID に付与されているかどうかを判断します。 (継承元 Context) |
ClearWallpaper() |
古い.
(継承元 ContextWrapper)
|
Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
CreateAttributionContext(String) |
現在の Context の新しい Context オブジェクトを返しますが、属性は別のタグに返します。 (継承元 Context) |
CreateConfigurationContext(Configuration) |
現在の Context の新しい Context オブジェクトを返しますが、そのリソースは特定の構成に合わせて調整されます。 (継承元 ContextWrapper) |
CreateContext(ContextParams) |
特定のプロパティと動作を持つコンテキストを作成します。 (継承元 Context) |
CreateContextForSplit(String) |
|
CreateDeviceContext(Int32) |
現在のコンテキストから新しい |
CreateDeviceProtectedStorageContext() |
|
CreateDisplayContext(Display) |
現在の Context の新しい Context オブジェクトを返しますが、そのリソースは指定された Display のメトリックに合わせて調整されます。 (継承元 ContextWrapper) |
CreatePackageContext(String, PackageContextFlags) |
指定したアプリケーション名の新しい Context オブジェクトを返します。 (継承元 ContextWrapper) |
CreateWindowContext(Display, Int32, Bundle) |
|
CreateWindowContext(Int32, Bundle) |
非アクティビティ ウィンドウのコンテキストを作成します。 (継承元 Context) |
DatabaseList() |
このコンテキストのアプリケーション パッケージに関連付けられているプライベート データベースに名前を付ける文字列の配列を返します。 (継承元 ContextWrapper) |
DeleteDatabase(String) |
このコンテキストのアプリケーション パッケージに関連付けられている既存のプライベート SQLiteDatabase を削除します。 (継承元 ContextWrapper) |
DeleteFile(String) |
このコンテキストのアプリケーション パッケージに関連付けられている特定のプライベート ファイルを削除します。 (継承元 ContextWrapper) |
DeleteSharedPreferences(String) |
|
Dispose() |
|
Dispose(Boolean) |
|
Dump(FileDescriptor, PrintWriter, String[]) |
サービスの状態を指定されたストリームに出力します。 (継承元 Service) |
EnforceCallingOrSelfPermission(String, String) |
自分も、処理している IPC の呼び出しプロセスにも特定のアクセス許可が付与されていない場合は、 を SecurityExceptionスローします。 (継承元 ContextWrapper) |
EnforceCallingOrSelfUriPermission(Uri, ActivityFlags, String) |
IPC の呼び出しプロセス 、または 特定の URI にアクセスするためのアクセス許可が付与されていない場合は、 をスローします SecurityException。 (継承元 ContextWrapper) |
EnforceCallingPermission(String, String) |
処理している IPC の呼び出しプロセスに特定のアクセス許可が付与されていない場合は、 をスローします SecurityException。 (継承元 ContextWrapper) |
EnforceCallingUriPermission(Uri, ActivityFlags, String) |
呼び出し元のプロセスとユーザー ID に特定の URI へのアクセス許可が付与されていない場合は、 をスローします SecurityException。 (継承元 ContextWrapper) |
EnforcePermission(String, Int32, Int32, String) |
システムで実行されている特定のプロセスとユーザー ID に対して、指定されたアクセス許可が許可されていない場合は、 を SecurityExceptionスローします。 (継承元 ContextWrapper) |
EnforceUriPermission(Uri, Int32, Int32, ActivityFlags, String) |
特定のプロセスとユーザー ID に特定の URI へのアクセス許可が付与されていない場合は、 をスローします SecurityException。 (継承元 ContextWrapper) |
EnforceUriPermission(Uri, String, String, Int32, Int32, ActivityFlags, String) |
URI と通常のアクセス許可の両方を適用します。 (継承元 ContextWrapper) |
Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
FileList() |
このコンテキストのアプリケーション パッケージに関連付けられているプライベート ファイルに名前を付ける文字列の配列を返します。 (継承元 ContextWrapper) |
GetColor(Int32) |
特定のリソース ID に関連付けられている色を返し、現在のテーマのスタイルを設定します。 (継承元 Context) |
GetColorStateList(Int32) |
特定のリソース ID に関連付け、現在のテーマのスタイルが設定された色の状態リストを返します。 (継承元 Context) |
GetDatabasePath(String) |
|
GetDir(String, FileCreationMode) |
アプリケーションが独自のカスタム データ ファイルを配置できる新しいディレクトリを取得し、必要に応じて作成します。 (継承元 ContextWrapper) |
GetDrawable(Int32) |
特定のリソース ID に関連付けられている描画可能なオブジェクトを返し、現在のテーマのスタイルを設定します。 (継承元 Context) |
GetExternalCacheDirs() |
アプリケーションが所有するキャッシュ ファイルを配置できるすべての外部ストレージ デバイス上のアプリケーション固有のディレクトリへの絶対パスを返します。 (継承元 ContextWrapper) |
GetExternalFilesDir(String) |
アプリケーションが所有する永続ファイルを配置できるプライマリ外部ファイルシステム () 上 ExternalStorageDirectoryのディレクトリへの絶対パスを返します。 (継承元 ContextWrapper) |
GetExternalFilesDirs(String) |
アプリケーションが所有する永続ファイルを配置できるすべての外部ストレージ デバイス上のアプリケーション固有のディレクトリへの絶対パスを返します。 (継承元 ContextWrapper) |
GetExternalMediaDirs() |
古い.
アプリケーションがメディア ファイルを配置できるすべての外部ストレージ デバイス上のアプリケーション固有のディレクトリへの絶対パスを返します。 (継承元 ContextWrapper) |
GetFileStreamPath(String) |
で作成 OpenFileOutput(String, FileCreationMode) されたファイルが格納されているファイル システムの絶対パスを返します。 (継承元 ContextWrapper) |
GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
GetObbDirs() |
アプリケーションの OBB ファイル (存在する場合) が見つかるすべての外部ストレージ デバイス上のアプリケーション固有のディレクトリへの絶対パスを返します。 (継承元 ContextWrapper) |
GetSharedPreferences(String, FileCreationMode) |
設定ファイル 'name' の内容を取得して保持し、値を取得および変更できる SharedPreferences を返します。 (継承元 ContextWrapper) |
GetString(Int32) |
アプリケーションのパッケージの既定の文字列テーブルからローカライズされた文字列を返します。 (継承元 Context) |
GetString(Int32, Object[]) |
アプリケーションのパッケージの既定の文字列テーブルからローカライズされた文字列を返します。 (継承元 Context) |
GetSystemService(Class) |
クラスによってシステム レベルのサービスにハンドルを返します。 (継承元 Context) |
GetSystemService(String) |
名前でシステム レベルのサービスにハンドルを返します。 (継承元 ContextWrapper) |
GetSystemServiceName(Class) |
|
GetText(Int32) |
アプリケーションのパッケージの既定の文字列テーブルから、ローカライズされたスタイルの CharSequence を返します。 (継承元 Context) |
GetTextFormatted(Int32) |
アプリケーションのパッケージの既定の文字列テーブルから、ローカライズされたスタイルの CharSequence を返します。 (継承元 Context) |
GrantUriPermission(String, Uri, ActivityFlags) |
そのパッケージに URI のコンテンツ プロバイダーにアクセスするための一般的なアクセス許可があるかどうかに関係なく、特定の Uri にアクセスするアクセス許可を別のパッケージに付与します。 (継承元 ContextWrapper) |
JavaFinalize() |
ガベージ コレクションがオブジェクトへの参照がなくなったと判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
MoveDatabaseFrom(Context, String) |
|
MoveSharedPreferencesFrom(Context, String) |
|
Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドをウェイクアップします。 (継承元 Object) |
NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドをウェイクアップします。 (継承元 Object) |
ObtainStyledAttributes(IAttributeSet, Int32[]) |
このコンテキストのテーマでスタイル設定された属性情報を取得します。 (継承元 Context) |
ObtainStyledAttributes(IAttributeSet, Int32[], Int32, Int32) |
このコンテキストのテーマでスタイル設定された属性情報を取得します。 (継承元 Context) |
ObtainStyledAttributes(Int32, Int32[]) |
このコンテキストのテーマでスタイル設定された属性情報を取得します。 (継承元 Context) |
ObtainStyledAttributes(Int32[]) |
このコンテキストのテーマでスタイル設定された属性情報を取得します。 (継承元 Context) |
OnBind(Intent) |
|
OnConfigurationChanged(Configuration) |
コンポーネントの実行中にデバイス構成が変更されたときにシステムによって呼び出されます。 (継承元 Service) |
OnConnected() |
Android システムがサービスに接続するときに呼び出されます。 |
OnCreate() |
サービスの初回作成時にシステムによって呼び出されます。 (継承元 Service) |
OnDestroy() |
システムによって呼び出され、サービスが使用されなくなり、削除されていることをサービスに通知します。 (継承元 Service) |
OnDisconnected() |
Android システムがサービスから切断されたときに呼び出されます。 |
OnFillRequest(FillRequest, CancellationSignal, FillCallback) |
Android システムによって呼び出されると、サービスによって画面を自動入力できるかどうかを決定します。 |
OnLowMemory() |
これは、システム全体がメモリ不足で実行されていて、アクティブに実行されているプロセスがメモリ使用量をトリミングする必要がある場合に呼び出されます。 (継承元 Service) |
OnRebind(Intent) |
新しいクライアントがサービスに接続したときに呼び出されます。これは、以前に、 ですべてが切断されたことが通知された後です |
OnSavedDatasetsInfoRequest(ISavedDatasetsInfoCallback) |
ユーザーがこのサービスに保存したデータセットに関する情報を表示するために、システム設定から呼び出されます。 |
OnSaveRequest(SaveRequest, SaveCallback) |
ユーザーが画面の内容を保存するようにサービスに要求したときに呼び出されます。 |
OnStart(Intent, Int32) |
古い.
このメンバーは非推奨とされます。 (継承元 Service) |
OnStartCommand(Intent, StartCommandFlags, Int32) |
クライアントがサービスを明示的に開始するたびに、 を呼び出してシステムによって呼び出 |
OnTaskRemoved(Intent) |
これは、サービスが現在実行中で、ユーザーがサービスのアプリケーションから取得したタスクを削除した場合に呼び出されます。 (継承元 Service) |
OnTimeout(Int32) |
のタイムアウト |
OnTrimMemory(TrimMemory) |
不要なメモリをプロセスからトリミングする適切なタイミングであるとオペレーティング システムが判断したときに呼び出されます。 (継承元 Service) |
OnUnbind(Intent) |
すべてのクライアントが、サービスによって公開された特定のインターフェイスから切断された場合に呼び出されます。 (継承元 Service) |
OpenFileInput(String) |
読み取り用に、このコンテキストのアプリケーション パッケージに関連付けられているプライベート ファイルを開きます。 (継承元 ContextWrapper) |
OpenFileOutput(String, FileCreationMode) |
このコンテキストのアプリケーション パッケージに関連付けられているプライベート ファイルを書き込み用に開きます。 (継承元 ContextWrapper) |
OpenOrCreateDatabase(String, FileCreationMode, SQLiteDatabase+ICursorFactory) |
このコンテキストのアプリケーション パッケージに関連付けられている新しいプライベート SQLiteDatabase を開きます。 (継承元 ContextWrapper) |
OpenOrCreateDatabase(String, FileCreationMode, SQLiteDatabase+ICursorFactory, IDatabaseErrorHandler) |
このコンテキストのアプリケーション パッケージに関連付けられている新しいプライベート SQLiteDatabase を開きます。 (継承元 ContextWrapper) |
PeekWallpaper() |
古い.
(継承元 ContextWrapper)
|
RegisterComponentCallbacks(IComponentCallbacks) |
Context の基本アプリケーションに新しい |
RegisterDeviceIdChangeListener(IExecutor, IIntConsumer) |
新しいデバイス ID 変更リスナーを に |
RegisterReceiver(BroadcastReceiver, IntentFilter) |
メイン アクティビティ スレッドで実行する BroadcastReceiver を登録します。 (継承元 ContextWrapper) |
RegisterReceiver(BroadcastReceiver, IntentFilter, ActivityFlags) |
古い.
|
RegisterReceiver(BroadcastReceiver, IntentFilter, ReceiverFlags) |
|
RegisterReceiver(BroadcastReceiver, IntentFilter, String, Handler) |
スケジューラのコンテキストで実行するインテント ブロードキャストを受信するために登録します。 (継承元 ContextWrapper) |
RegisterReceiver(BroadcastReceiver, IntentFilter, String, Handler, ActivityFlags) |
古い.
|
RegisterReceiver(BroadcastReceiver, IntentFilter, String, Handler, ReceiverFlags) |
|
RemoveStickyBroadcast(Intent) |
古い.
(継承元 ContextWrapper)
|
RemoveStickyBroadcastAsUser(Intent, UserHandle) |
古い.
(継承元 ContextWrapper)
|
RevokeSelfPermissionOnKill(String) |
ランタイム アクセス許可の非同期失効をトリガーします。 (継承元 Context) |
RevokeSelfPermissionsOnKill(ICollection<String>) |
呼び出し元パッケージに対する 1 つ以上のアクセス許可の失効をトリガーします。 (継承元 Context) |
RevokeUriPermission(String, Uri, ActivityFlags) |
|
RevokeUriPermission(Uri, ActivityFlags) |
System.String,Android.Net.Uri,Android.Net.Uri)で追加された特定のコンテンツ プロバイダー URI にアクセスするためのすべてのアクセス許可を削除します。 (継承元 ContextWrapper) |
SendBroadcast(Intent) |
特定の意図を関心のあるすべての BroadcastReceiver にブロードキャストします。 (継承元 ContextWrapper) |
SendBroadcast(Intent, String) |
特定の意図を関心のあるすべての BroadcastReceiver にブロードキャストし、必要なアクセス許可をオプションで適用できるようにします。 (継承元 ContextWrapper) |
SendBroadcast(Intent, String, Bundle) |
特定の意図を関心のあるすべての BroadcastReceiver にブロードキャストし、必要なアクセス許可をオプションで適用できるようにします。 (継承元 Context) |
SendBroadcastAsUser(Intent, UserHandle) |
ブロードキャストの SendBroadcast(Intent) 送信先のユーザーを指定できる のバージョン。 (継承元 ContextWrapper) |
SendBroadcastAsUser(Intent, UserHandle, String) |
ブロードキャストの SendBroadcast(Intent, String) 送信先のユーザーを指定できる のバージョン。 (継承元 ContextWrapper) |
SendBroadcastWithMultiplePermissions(Intent, String[]) |
必要なすべての BroadcastReceivers に指定された意図をブロードキャストし、必要なアクセス許可の配列を適用できるようにします。 (継承元 Context) |
SendOrderedBroadcast(Intent, Int32, String, String, BroadcastReceiver, Handler, String, Bundle, Bundle) |
|
SendOrderedBroadcast(Intent, String) |
|
SendOrderedBroadcast(Intent, String, BroadcastReceiver, Handler, Result, String, Bundle) |
SendBroadcast(Intent)のバージョンでは、ブロードキャストからデータを受信できます。 (継承元 ContextWrapper) |
SendOrderedBroadcast(Intent, String, Bundle) |
特定の意図を関心のあるすべての BroadcastReceiver にブロードキャストし、一度に 1 つずつ配信して、より優先する受信者が優先されていない受信者に配信される前にブロードキャストを使用できるようにします。 (継承元 Context) |
SendOrderedBroadcast(Intent, String, Bundle, BroadcastReceiver, Handler, Result, String, Bundle) |
|
SendOrderedBroadcast(Intent, String, String, BroadcastReceiver, Handler, Result, String, Bundle) |
|
SendOrderedBroadcastAsUser(Intent, UserHandle, String, BroadcastReceiver, Handler, Result, String, Bundle) |
|
SendStickyBroadcast(Intent) |
古い.
|
SendStickyBroadcast(Intent, Bundle) |
|
SendStickyBroadcastAsUser(Intent, UserHandle) |
古い.
(継承元 ContextWrapper)
|
SendStickyOrderedBroadcast(Intent, BroadcastReceiver, Handler, Result, String, Bundle) |
古い.
(継承元 ContextWrapper)
|
SendStickyOrderedBroadcastAsUser(Intent, UserHandle, BroadcastReceiver, Handler, Result, String, Bundle) |
古い.
(継承元 ContextWrapper)
|
SetForeground(Boolean) |
このメンバーは非推奨とされます。 (継承元 Service) |
SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
SetTheme(Int32) |
このコンテキストの基本テーマを設定します。 (継承元 ContextWrapper) |
SetWallpaper(Bitmap) |
古い.
(継承元 ContextWrapper)
|
SetWallpaper(Stream) |
古い.
(継承元 ContextWrapper)
|
StartActivities(Intent[]) |
StartActivities(Intent[], Bundle)オプションが指定されていない場合と同じです。 (継承元 ContextWrapper) |
StartActivities(Intent[], Bundle) |
複数の新しいアクティビティを起動します。 (継承元 ContextWrapper) |
StartActivity(Intent) |
StartActivity(Intent, Bundle)オプションが指定されていない場合と同じです。 (継承元 ContextWrapper) |
StartActivity(Intent, Bundle) |
新しいアクティビティを起動します。 (継承元 ContextWrapper) |
StartActivity(Type) |
|
StartForeground(Int32, Notification) |
サービスが開始されている (を介して |
StartForeground(Int32, Notification, ForegroundService) |
のオーバーロードされたバージョン |
StartForegroundService(Intent) |
|
StartInstrumentation(ComponentName, String, Bundle) |
クラスの実行を開始します Instrumentation 。 (継承元 ContextWrapper) |
StartIntentSender(IntentSender, Intent, ActivityFlags, ActivityFlags, Int32) |
|
StartIntentSender(IntentSender, Intent, ActivityFlags, ActivityFlags, Int32, Bundle) |
と同様 StartActivity(Intent, Bundle)ですが、IntentSender を使用して開始します。 (継承元 ContextWrapper) |
StartService(Intent) |
特定のアプリケーション サービスを開始することを要求します。 (継承元 ContextWrapper) |
StopForeground(Boolean) |
のレガシ バージョン |
StopForeground(StopForegroundFlags) |
このサービスをフォアグラウンド状態から削除し、より多くのメモリが必要な場合に強制終了できるようにします。 (継承元 Service) |
StopSelf() |
サービスが以前に開始されていた場合は、サービスを停止します。 (継承元 Service) |
StopSelf(Int32) |
の古いバージョンでは |
StopSelfResult(Int32) |
サービスが最後に開始された時刻が var>startId/var> の場合は<、サービスを<停止します。 (継承元 Service) |
StopService(Intent) |
特定のアプリケーション サービスを停止することを要求します。 (継承元 ContextWrapper) |
ToArray<T>() |
|
ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
UnbindService(IServiceConnection) |
アプリケーション サービスから切断します。 (継承元 ContextWrapper) |
UnregisterComponentCallbacks(IComponentCallbacks) |
以前に |
UnregisterDeviceIdChangeListener(IIntConsumer) |
コンテキストからデバイス ID 変更リスナーを削除します。 (継承元 Context) |
UnregisterFromRuntime() |
|
UnregisterReceiver(BroadcastReceiver) |
以前に登録した BroadcastReceiver の登録を解除します。 (継承元 ContextWrapper) |
UpdateServiceGroup(IServiceConnection, Int32, Int32) |
以前に または 関連するメソッドで |
Wait() |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または <em>割り込み</em によって待機します>。 (継承元 Object) |
Wait(Int64) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
IJavaPeerable.Disposed() |
|
IJavaPeerable.DisposeUnlessReferenced() |
|
IJavaPeerable.Finalized() |
|
IJavaPeerable.JniManagedPeerState |
|
IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
IJavaPeerable.SetPeerReference(JniObjectReference) |
|
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
JavaCast<TResult>(IJavaObject) |
|
GetJniTypeName(IJavaPeerable) |
|