2

私はこれが何度も提起されたことを知っていますが、それに対する答えを見つけることができませんでした.

以下のコードを使用してアプリでプッシュ通知を設定しようとしていますが、チャネル uri の null 問題が発生しています。

同じネットワーク条件 (Work WiFi - Home WiFi - 3G) で 4 つの異なるデバイス + エミュレーターでアプリを試しましたが、2 つのデバイスは Lumia 920 で、どちらもチャネル uri を取得できませんでしたが、他の 2 つのデバイスは HTC 8X であり、 Lumia 820 は、チャネル uri を正常に取得し、プッシュを登録できます。

エミュレーターは、チャネル uri を正常に取得することもできます。

Lumia 920 の 1 つでチャンネル uri を取得できましたが、アプリをアンインストールしてから再度インストールしたところ、チャンネル uri を取得できませんでした。

以下は私のシナリオです:

1- 3G にインストールされた Lumia 920 Black は正常に動作し、アンインストール/再インストールするとどの接続でも動作しなくなりました (3G - Work WiFi - Home WiFi) 2- 3G にインストールされた Lumia 920 Yellow - Work WiFi - Home WIfi はチャネル uri を取得できませんでした 3 - 3G 上の HTC 8X - 動作する WiFi - ホーム WiFi は 3 つのネットワークすべてで正常に動作しました 4- HTC 8X と同じ Lumia 820 は正常に動作しました

他のアプリのプッシュ通知は、4 つのデバイスすべてで正常に機能していることに注意してください。

チャネル null uri に関するフィードバックやアドバイスをいただければ幸いです。

以下は私が使用したコードです。これはMSDNが提供するものと同じコードです

  public MainPage()
    {
        /// Holds the push channel that is created or found.
        HttpNotificationChannel pushChannel;

        // The name of our push channel.
        string channelName = "ToastSampleChannel";

        InitializeComponent();

        // Try to find the push channel.
        pushChannel = HttpNotificationChannel.Find(channelName);

        // If the channel was not found, then create a new connection to the push service.
        if (pushChannel == null)
        {
            pushChannel = new HttpNotificationChannel(channelName);

            // Register for all the events before attempting to open the channel.
            pushChannel.ChannelUriUpdated += new EventHandler<NotificationChannelUriEventArgs>(PushChannel_ChannelUriUpdated);
            pushChannel.ErrorOccurred += new EventHandler<NotificationChannelErrorEventArgs>(PushChannel_ErrorOccurred);

            // Register for this notification only if you need to receive the notifications while your application is running.
            pushChannel.ShellToastNotificationReceived += new EventHandler<NotificationEventArgs>(PushChannel_ShellToastNotificationReceived);

            pushChannel.Open();

            // Bind this new channel for toast events.
            pushChannel.BindToShellToast();

        }
        else
        {
            // The channel was already open, so just register for all the events.
            pushChannel.ChannelUriUpdated += new EventHandler<NotificationChannelUriEventArgs>(PushChannel_ChannelUriUpdated);
            pushChannel.ErrorOccurred += new EventHandler<NotificationChannelErrorEventArgs>(PushChannel_ErrorOccurred);

            // Register for this notification only if you need to receive the notifications while your application is running.
            pushChannel.ShellToastNotificationReceived += new EventHandler<NotificationEventArgs>(PushChannel_ShellToastNotificationReceived);

            // Display the URI for testing purposes. Normally, the URI would be passed back to your web service at this point.
            System.Diagnostics.Debug.WriteLine(pushChannel.ChannelUri.ToString());
            MessageBox.Show(String.Format("Channel Uri is {0}",
                pushChannel.ChannelUri.ToString()));

        }
    }
4

5 に答える 5

0

私が開発していた新しい電話では日付と時刻が正しく設定されなかったため、ChannelUri は null でした。時刻を手動で設定するように切り替え、時刻、日付、地域を修正してから自動に戻すと、ssl 証明書、Windows Phone の更新、最も重要な ChannelUri など、すべてが正常に機能しました;)

于 2014-05-07T06:04:30.763 に答える
0

設定 > 「電話 + SIM」に移動し、「データ接続」オプションをオフにしてみてください。

設定 > データセンスでオプションを変更してみましたか? バックグラウンドデータを制限するオプションはありますか?

バッテリーセーバーが有効になっていますか? これにより、バッテリー残量が少ない場合などに使用が制限されます。

また、上記のように、デバイスの日付と時刻を確認しましたか? 日付と時刻の自動設定が原因かもしれません。これを手動で修正してから、自動に戻すことができます。できます。

于 2014-09-01T14:17:00.287 に答える
0

携帯電話のデータ接続ではなく、ローカル Wi-Fi 接続を使用してみてください。ここのコメントの 1 つに従って電話の「データ接続」を無効にすると、この結果が得られます。これを試して失敗しましたが、電話がwifiルーターに接続されていないことに気付きました.

注: 私の場合、セルのカバレッジが非常に悪いため、すべての携帯電話のデータ、通話などを固定回線のインターネット接続にリダイレクトする特別な vodafone ルーターを使用しています。そのルーターをバイパスすると、ChannelUri を受け取りました。また、別のセルタワーを使用する職場で電話/アプリを試してみましたが、問題ありませんでした。

于 2015-01-11T02:36:21.350 に答える
-1

日付を手動で設定しようとしましたが、効果がありませんでした。私にとってうまくいったのは、実際にSIMカードなしで電話を起動し、シャットダウンし、SIMを再挿入して再起動することでした. これにより、ChannelUri を再び取得できるようになりました。

これは、SIM のデータ接続を切り替えることを提案するTripVoltageの提案に関連している可能性があると思われます。

于 2015-01-07T06:03:50.363 に答える