質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
UWP

UWPは、Universal Windows Platformの略。様々なデバイス向けに提供されているアプリケーションを共通のフレームワーク上で動作可能にする仕組みで、Windows10で導入されました。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

1602閲覧

WindowsPhoneがSuspendしていると、ネットワークの接続状態を取得できません。

nomurax

総合スコア32

UWP

UWPは、Universal Windows Platformの略。様々なデバイス向けに提供されているアプリケーションを共通のフレームワーク上で動作可能にする仕組みで、Windows10で導入されました。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2018/02/19 03:22

####前提・実現したいこと
こんにちは。いつもたいへんお世話になります。
自作のWindows 10 Phone用UWPアプリケーションで、ネットワークの接続状態の変更を検知しようとしています。

###発生している問題・エラーメッセージ
WindowsPhoneがSuspendしていると、ネットワークの接続状態を取得できません。

C#

1string opentimelog = string.Empty; 2protected override void OnNavigatedTo(NavigationEventArgs e) { 3 NetworkInformation.NetworkStatusChanged += this.NetworkInformation_NetworkStatusChanged; 4 NetworkChange.NetworkAddressChanged += NetworkChange_NetworkAddressChanged; 5} 6 7private void NetworkInformation_NetworkStatusChanged(object sender){ 8 opentimelog += DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss ffff") + "\t" + "\r\n"; 9} 10 11private void NetworkChange_NetworkAddressChanged(object sender, EventArgs e) { 12 opentimelog += DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss ffff") + "\t" + "\r\n"; 13}

このそれぞれでlogをとれたのですが、WindowsPhoneがSuspendしていると、ネットワークの接続状態を取得できません。
移動中にとりたいので、Suspendしているときにとりたいです。
こういうとき、どうするものでしょうか?
なにか方法があれば教えてください。

アラームとタイマーは、アプリを閉じている場合やデバイスがロックされている場合でも動作します。
https://support.microsoft.com/ja-jp/help/4026379/windows-10-how-to-use-alarms-clock-app
とあるので、アラームとタイマーと同じように実装すればよいのかと考えているのですが。

####補足情報(言語/FW/ツール等のバージョンなど)
Windows10 Home 1709 64bit
Microsoft Visual Studio Community 2017
Version 15.1 (26403.3) Release
VisualStudio.15.Release/15.1.0+26403.3
Microsoft .NET Framework
Version 4.7.02556
インストールされているバージョン:Community
Visual C# 2017 00369-60000-00001-AA631

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Windows 10 ユニバーサル Windows プラットフォーム (UWP) アプリのライフサイクル

アプリは、中断されている間、受信登録したネットワーク イベントを受け取りません。 これらのネットワーク イベントはキューに入れられず、受け取ることができません。 そのため、再開時にアプリでネットワーク ステータスをテストする必要があります。

上記にある通り、中断(Suspend)している間はネットワークイベントそのものを受け取ることができません。
再開(Resume)するときにネットワークの再接続から復帰するように処理させる必要があります。
そのようにすることでユーザーからはバックグラウンドで動いているように見せかけるわけです。

以下のページも見ておくといいでしょう。
中断/再開の最適化

投稿2018/02/28 14:21

編集2018/02/28 14:25
phoenix3430025

総合スコア135

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問