-
Notifications
You must be signed in to change notification settings - Fork 106
接触判定時にローカル通知を表示する #290
Description
その機能リクエストは何らかの問題に関連しますか / Is your feature request related to a problem?
#207 に関連して、接触確認API(ExposureNotification)のExposureWindow mode(iOSではENv2)では、接触情報を取得するタイミングでシステムによる通知が表示されない仕様となっている。
そのため、バックグラウンドで実行した接触確認の結果(濃厚接触の可能性)をユーザーに知らせる手段がない。
また現在のコードでは接触情報の取得(ExposureInformations)タイミングでシステムが通知を表示している。
ExposureInformationsの取得後、後にもう一度フィルタリングする処理を挟んでいるため、取得したExopsureInformationsがすべてフィルターでドロップされた場合、「通知は表示されても接触記録がない」現象が発生する可能性がある。
cocoa/Covid19Radar/Covid19Radar/Services/ExposureNotificationHandler.cs
Lines 100 to 119 in 91ba1ef
| 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