Skip to content
This repository was archived by the owner on Apr 12, 2023. It is now read-only.
This repository was archived by the owner on Apr 12, 2023. It is now read-only.

接触判定時にローカル通知を表示する #290

@keiji

Description

@keiji

その機能リクエストは何らかの問題に関連しますか / Is your feature request related to a problem?

#207 に関連して、接触確認API(ExposureNotification)のExposureWindow mode(iOSではENv2)では、接触情報を取得するタイミングでシステムによる通知が表示されない仕様となっている。

そのため、バックグラウンドで実行した接触確認の結果(濃厚接触の可能性)をユーザーに知らせる手段がない。

また現在のコードでは接触情報の取得(ExposureInformations)タイミングでシステムが通知を表示している。
ExposureInformationsの取得後、後にもう一度フィルタリングする処理を挟んでいるため、取得したExopsureInformationsがすべてフィルターでドロップされた場合、「通知は表示されても接触記録がない」現象が発生する可能性がある。

if (userExposureSummary.HighestRiskScore >= config.MinimumRiskScore)
{
var exposureInfo = await getExposureInfo();
loggerService.Info($"ExposureInfo: {exposureInfo.Count()}");
foreach (var exposure in exposureInfo)
{
loggerService.Info($"Exposure.Timestamp: {exposure.Timestamp}");
loggerService.Info($"Exposure.Duration: {exposure.Duration}");
loggerService.Info($"Exposure.AttenuationValue: {exposure.AttenuationValue}");
loggerService.Info($"Exposure.TotalRiskScore: {exposure.TotalRiskScore}");
loggerService.Info($"Exposure.TransmissionRiskLevel: {exposure.TransmissionRiskLevel}");
if (exposure.TotalRiskScore >= config.MinimumRiskScore)
{
UserExposureInfo userExposureInfo = new UserExposureInfo(exposure.Timestamp, exposure.Duration, exposure.AttenuationValue, exposure.TotalRiskScore, (Covid19Radar.Model.UserRiskLevel)exposure.TransmissionRiskLevel);
exposureInformationList.Add(userExposureInfo);
}
}
}

(本来、Configurationで指定した閾値を超えた接触記録があるからExposureInformationsへのアクセスが可能になるので、起こりえないことではあるが、Twitterなどで「通知は来たけど接触なしと表示される」という投稿をみかけることがあり、気になっています)

解決策についてお書きください / Describe the solution you'd like

ローカル通知を実装して、ExposureInformationsをフィルターした結果、濃厚接触と判定されたタイミングで表示する。

あなたが考える代替案についてご説明ください / Describe alternatives you've considered

ExposureWindow mode(ENv2)対応時に合わせてやる。

けれど、プラットフォーム横断の通知実装は先にやっておきたい。

その他 / Additional context

Legacy v1(iOSではENv1)では通知がシステムから通知と合わせて出ることになるので、違和感がないように調整する必要がある。

Internal IDs:

  • Product Backlog Item 3194

Metadata

Metadata

Labels

confirmed開発内部管理用enhancement新しい機能や改善のリクエストin progress現在対応中、または対応準備を開始しているもの

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions