ForegroundService 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
この列挙体は、メンバー値のビットごとの組み合わせをサポートしています。
[System.Flags]
public enum ForegroundService
[<System.Flags>]
type ForegroundService =
- 継承
-
ForegroundService
- 属性
フィールド
| Name | 値 | 説明 |
|---|---|---|
| TypeManifest | -1 | 特殊な値は、マニフェスト ファイルに設定されているすべての型を使用することを示します。
|
| TypeNone | 0 | この定数は、API レベル 34 では非推奨になりました。 使用しないでください。 マニフェスト ファイルに設定されていない場合の既定のフォアグラウンド サービスの種類。 API レベルのBuild.VERSION_CODESを対象とするアプリ。UPSIDE_DOWN_CAKE以降では、この型を使用しないでください。この型で Service.startForeground(int, android.app.Notification, int) を呼び出すと、InvalidForegroundServiceTypeException が取得されます。
|
| TypeDataSync | 1 | R.attr.foregroundServiceType 属性の dataSync に対応する定数。 データ(写真、ファイル、アカウント)のアップロード/ダウンロード、バックアップ/復元、インポート/エクスポート、フェッチ、デバイスとクラウド間のネットワーク経由での転送。 この種類の制限時間は、Android バージョン Build.VERSION_CODES から 6 時間です。VANILLA_ICE_CREAM。 この型のフォアグラウンド サービスは、Service.stopSelf()、Context.stopService(android.content.Intent) またはそのオーバーロードによってタイムアウト内に停止する必要があります。 Service.stopForeground(int) も機能し、サービスを "バックグラウンド" サービスに降格します。これは間もなくシステムによって停止されます。 タイムアウト内にサービスが停止しない場合は、Service.onTimeout(int, int) が呼び出されます。 また、Build.VERSION_CODESより前のバージョンの Android ではFOREGROUND_SERVICE_TYPE_DATA_SYNCを使用できますが、注意してください。VANILLA_ICE_CREAM、Service.onTimeout(int, int) はそのようなバージョンに存在しないため、呼び出されることはありません。 このため、開発者は、Service.onTimeout(int, int) がそのようなバージョンで呼び出されない場合でも、フォアグラウンド サービスを停止する必要があります。
|
| TypeMediaPlayback | 2 | R.attr.foregroundServiceType 属性の mediaPlayback に対応する定数。 音楽、ビデオ、ニュース、その他のメディア再生。 API レベルのBuild.VERSION_CODESを対象とするアプリから、この種類のフォアグラウンド サービスを開始します。UPSIDE_DOWN_CAKE以降では、アクセス許可のManifest.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACKが必要になります。
|
| TypePhoneCall | 4 | R.attr.foregroundServiceType 属性の phoneCall に対応する定数。 電話、ビデオ会議、または同様の対話型通信に関連する継続的な操作。 API レベルのBuild.VERSION_CODESを対象とするアプリから、この種類のフォアグラウンド サービスを開始します。UPSIDE_DOWN_CAKE以降では、アクセス許可のManifest.permission.FOREGROUND_SERVICE_PHONE_CALLが必要になり、既定のダイヤラ ロールをManifest.permission.MANAGE_OWN_CALLSまたは保持する必要があります。
|
| TypeLocation | 8 | R.attr.foregroundServiceType 属性内の場所に対応する定数。 GPS、マップ、ナビゲーションの場所の更新。 API レベルのBuild.VERSION_CODESを対象とするアプリから、この種類のフォアグラウンド サービスを開始します。UPSIDE_DOWN_CAKE以降では、アクセス許可Manifest.permission.FOREGROUND_SERVICE_LOCATIONと、Manifest.permission.ACCESS_COARSE_LOCATION、Manifest.permission.ACCESS_FINE_LOCATIONのいずれかのアクセス許可が必要になります。
|
| TypeConnectedDevice | 16 | R.attr.foregroundServiceType 属性の connectedDevice に対応する定数。 自動、Bluetooth、テレビ、またはその他のデバイスの接続、監視、操作。 API レベルのBuild.VERSION_CODESを対象とするアプリから、この種類のフォアグラウンド サービスを開始します。UPSIDE_DOWN_CAKE以降では、アクセス許可Manifest.permission.FOREGROUND_SERVICE_CONNECTED_DEVICEと、Manifest.permission.BLUETOOTH_ADVERTISE、Manifest.permission.BLUETOOTH_CONNECT、Manifest.permission.BLUETOOTH_SCAN、Manifest.permission.CHANGE_NETWORK_STATE、Manifest.permission.CHANGE_WIFI_STATE、Manifest.permission.CHANGE_WIFI_MULTICAST_STATE、Manifest.permission.NFC、Manifest.permission.TRANSMIT_IR、Manifest.permission.UWB_RANGING、Manifest.permission.RANGING、または接続されている USB デバイス/アクセサリのいずれかに対するアクセス権が付与されています。
|
| TypeMediaProjection | 32 | foregroundServiceType 属性の mediaProjection に対応する定数。 MediaProjection を使用してキャプチャするには、アプリがこの定数に対応する型でフォアグラウンド サービスを開始する必要があります。 この型は MediaProjection にのみ使用してください。 createVirtualDisplay を使用して画面の内容をキャプチャすると、画面の内容を会議に表示したり、スクリーンショットを撮ったり、その他のいくつかのシナリオを記録したりできるようになります。 API レベルのBuild.VERSION_CODESを対象とするアプリから、この種類のフォアグラウンド サービスを開始します。UPSIDE_DOWN_CAKE以降では、アクセス許可Manifest.permission.FOREGROUND_SERVICE_MEDIA_PROJECTIONが必要になり、ユーザーはこのアプリからの画面キャプチャ要求を許可している必要があります。
|
| TypeCamera | 64 | R.attr.foregroundServiceType 属性のカメラに対応する定数。 カメラ デバイスを使用するか、ビデオを録画します。 targetSdkVersion Build.VERSION_CODESを使用するアプリの場合。R 以降では、この型がマニフェストおよび Service.startForeground(int, android.app.Notification, int) で指定されていない場合、フォアグラウンド サービスはカメラにアクセスできません。 API レベルのBuild.VERSION_CODESを対象とするアプリから、この種類のフォアグラウンド サービスを開始します。UPSIDE_DOWN_CAKE以降では、アクセス許可Manifest.permission.FOREGROUND_SERVICE_CAMERAと Manifest.permission.CAMERA が必要になります。
|
| TypeMicrophone | 128 | R.attr.foregroundServiceType 属性のマイクに対応する定数。 マイク デバイスを使用するか、オーディオを録音します。 targetSdkVersion Build.VERSION_CODESを使用するアプリの場合。R 以降では、この種類がマニフェストおよび Service.startForeground(int, android.app.Notification, int) で指定されていない場合、フォアグラウンド サービスはマイクにアクセスできません。 API レベルのBuild.VERSION_CODESを対象とするアプリから、この種類のフォアグラウンド サービスを開始します。UPSIDE_DOWN_CAKE以降では、アクセス許可Manifest.permission.FOREGROUND_SERVICE_MICROPHONEと、Manifest.permission.CAPTURE_AUDIO_OUTPUT、Manifest.permission.RECORD_AUDIOのいずれかのアクセス許可が必要になります。
|
| TypeHealth | 256 | R.attr.foregroundServiceType 属性の正常性に対応する定数。 健康、ウェルネス、フィットネス。 呼び出し元アプリには、Manifest.permission.FOREGROUND_SERVICE_HEALTHアクセス許可と、Manifest.permission.ACTIVITY_RECOGNITION、Manifest.permission.HIGH_SAMPLING_RATE_SENSORSのいずれかのアクセス許可が必要です。 HealthPermissions.READ_HEART_RATE、HealthPermissions.READ_SKIN_TEMPERATURE、HealthPermissions.READ_OXYGEN_SATURATION、HealthPermissions.READ_BLOOD_PRESSURE、HealthPermissions.READ_HEART_RATE_VARIABILITY、HealthPermissions.READ_RESPIRATORY_RATE、HealthPermissions.READ_VO2_MAX。. Manifest.permission.FOREGROUND_SERVICE_HEALTHが必要
|
| TypeRemoteMessaging | 512 | R.attr.foregroundServiceType 属性の remoteMessaging に対応する定数。 デバイス間でメッセージを中継するためにローカル サーバーをホストするメッセージングのユース ケース。 Manifest.permission.FOREGROUND_SERVICE_REMOTE_MESSAGINGが必要
|
| TypeSystemExempted | 1024 | R.attr.foregroundServiceType 属性の systemExempted に対応する定数。 システムが適用除外されたフォアグラウンド サービスのユース ケース。 ただし、アプリは次の場合にのみこの型を使用できます。アプリには UID < Process.FIRST_APPLICATION_UIDがあります。アプリは Doze 許可リストにあります。デバイスがデモ モードで実行されている。デバイス所有者アプリ。プロファイル所有者アプリ。永続的なアプリ。キャリア特権アプリ。android.app.role.RoleManager#ROLE_EMERGENCY ロールを持つアプリ。ヘッドレス システム アプリ。デバイス管理者アプリ。アクティブな VPN アプリ。Manifest.permission.SCHEDULE_EXACT_ALARMまたはManifest.permission.USE_EXACT_ALARMアクセス許可を保持しているアプリ。 Manifest.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTEDが必要
|
| TypeShortService | 2048 | "有効期間が短い" サービスのフォアグラウンド サービスの種類。マニフェストの R.attr.foregroundServiceType 属性の shortService に対応します。 他のフォアグラウンド サービスの種類とは異なり、この型は特定のユース ケースに関連付けられていないため、(Manifest.permission.FOREGROUND_SERVICE以外に) 特別なアクセス許可は必要ありません。 ただし、この型には次の制限があります。 型のタイムアウトは 3 分です。 この型のフォアグラウンド サービスは、Service.stopSelf()、Context.stopService(android.content.Intent) またはそのオーバーロードによってタイムアウト内に停止する必要があります。 Service.stopForeground(int) も機能し、サービスを "バックグラウンド" サービスに降格します。これは間もなくシステムによって停止されます。 タイムアウト内にサービスが停止しない場合は、Service.onTimeout(int) が呼び出されます。 システムがこのコールバックを呼び出しても、サービスは自動的に停止されないことに注意してください。 このコールバックを取得した場合でも、前述のいずれかの方法を使用してサービスを停止する必要があります。 コールバック後もサービスが停止しない場合、アプリは数秒の短い猶予期間の後に ANR として宣言されます。この種類のフォアグラウンド サービスを "固定" にすることはできません (Service.START_STICKYを参照)。 つまり、短い foregorund サービスの実行中にクラッシュまたはメモリ不足によってアプリが強制終了された場合、システムはサービスを再起動しません。ショート フォアグラウンド サービスから他のフォアグラウンド サービスを開始することはできません。 他のフォアグラウンド サービスの種類とは異なり、アプリがバックグラウンドで実行されているのに対し、"短い" フォアグラウンド サービスのみを使用している場合、ここで説明する制限により、他のフォアグラウンド サービスの開始は許可されません。バックグラウンドでの制限が開始されます。複数のフォアグラウンド サービスの種類を |s と組み合わせて、FOREGROUND_SERVICE_TYPE_SHORT_SERVICEを組み合わせることができます。 他の型でも使用できます。 ただし、FOREGROUND_SERVICE_TYPE_SHORT_SERVICEは、使用する有効なフォアグラウンド サービスが他になく、タイムアウトがタスクに対して十分な長さであり、他の型を使用できる場合は、この型を使用しても意味がありません。 このため、FOREGROUND_SERVICE_TYPE_SHORT_SERVICEが他のフォアグラウンド サービスの種類と組み合わされている場合、システムはそれを無視するだけで、その結果、上記の制限は適用されません (たとえば、タイムアウトはありません)。 また、AndroidバージョンBuild.VERSION_CODESでFOREGROUND_SERVICE_TYPE_SHORT_SERVICEが追加されたとしても注意してください。UPSIDE_DOWN_CAKE、以前のバージョンの Android でも使用できます (他の新しいフォアグラウンド サービスの種類を使用できる場合と同様)。 ただし、Service.onTimeout(int) は以前のバージョンには存在しないため、そのようなバージョンでは呼び出されません。 このため、開発者は、Service.onTimeout(int) がそのようなバージョンで呼び出されない場合でも、フォアグラウンド サービスを停止する必要があります。
|
| TypeMediaProcessing | 8192 | R.attr.foregroundServiceType 属性の mediaProcessing に対応する定数。 ビデオや写真の編集や処理などのメディア処理のユース ケース。 この種類の時間制限は 6 時間です。 この型のフォアグラウンド サービスは、Service.stopSelf()、Context.stopService(android.content.Intent) またはそのオーバーロードによってタイムアウト内に停止する必要があります。 Service.stopForeground(int) も機能し、サービスを "バックグラウンド" サービスに降格します。これは間もなくシステムによって停止されます。 タイムアウト内にサービスが停止しない場合は、Service.onTimeout(int, int) が呼び出されます。 また、FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSINGがAndroidバージョンのBuild.VERSION_CODESで追加されたとしても、注意してください。VANILLA_ICE_CREAM、以前のバージョンの Android でも使用できます (他の新しいフォアグラウンド サービスの種類を使用できる場合と同様)。 ただし、Service.onTimeout(int, int) は以前のバージョンには存在しないため、そのようなバージョンでは呼び出されません。 このため、開発者は、Service.onTimeout(int, int) がそのようなバージョンで呼び出されない場合でも、フォアグラウンド サービスを停止する必要があります。 Manifest.permission.FOREGROUND_SERVICE_MEDIA_PROCESSINGが必要
|
| TypeSpecialUse | 1073741824 | R.attr.foregroundServiceType 属性の specialUse に対応する定数。 他のフォアグラウンド サービスの種類に分類できないが、JobInfo.Builder API を使用できないユース ケース。 このフォアグラウンド サービスの種類の使用は制限される場合があります。 さらに、アプリでは、ここでの正確なユース ケースのヒントとして AndroidManifest.xml でサービス レベルの <property> を宣言する必要があります。
Android の今後のリリースでは、上記のフォアグラウンド サービスの種類 foo がプラットフォームでサポートされている場合、下位互換性を提供するために、アプリは <uses-permission> セクションで android:maxSdkVersion 属性を指定し、フォアグラウンド サービスの種類 foo を android:foregroundServiceType に追加できるため、同じアプリを両方のプラットフォームにインストールできます。
Manifest.permission.FOREGROUND_SERVICE_SPECIAL_USEが必要
|