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

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

ただいまの
回答率

90.33%

  • Android

    6750questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Firebase

    681questions

    Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

  • Xamarin

    535questions

    Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

  • Azure

    231questions

    Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

Xamarin.AndroidアプリでAzure NotificationHubに接続できない

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 74

JohnAlfredson

score 12

作ろうとしていたもの

「チュートリアル: Azure Notification Hubs を使用して Xamarin.Android アプリにプッシュ通知を送信する」
↑のチュートリアルでできるアプリケーションにタグを追加登録する機能をつけようとしています。
androidアプリでタグの名前を入力し、ボタンを押すことによって入力したタグがnotificationhubに登録され、notificationhubからそのタグを指定して通知を送ると、そのタグを登録したandroidが通知を受け取るというのを考えています。

問題

ですが、ボタンを押したときにNotificationHub型変数を新しく宣言する部分で
Java.Lang.NullPointerException: <Timeout exceeded getting exception details>
というエラーが発生してしまいます。

コード

MainActivity.csは以下のように書き換えました。

public class MainActivity : Activity
    {

        public const string TAG = "MainActivity";

        RegistrationNewTag registration = new RegistrationNewTag();

        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.Main);

            if (Intent.Extras != null)
            {
                foreach (var key in Intent.Extras.KeySet())
                {
                    if (key != null)
                    {
                        var value = Intent.Extras.GetString(key);
                        Log.Debug(TAG, "Key: {0} Value: {1}", key, value);
                    }
                }
            }

            Button tagbutton = FindViewById<Button>(Resource.Id.registbutton);
            //ボタンが押されたときの処理
            tagbutton.Click += delegate {

                EditText tagname = FindViewById<EditText>(Resource.Id.tagname);

                registration.tagName = tagname.Text;

                registration.Execute();

            };
        }
    }


非同期処理を行うためのクラス RegistrationNewTag.cs を追加しました。

    class RegistrationNewTag : AsyncTask
    {

        public string tagName;

        FirebaseInstanceIdService firebaseInstance = new FirebaseInstanceIdService();

        protected override Java.Lang.Object DoInBackground(params Java.Lang.Object[] @params)
        {
            //この部分でエラーが発生
            NotificationHub connectionAzure = new NotificationHub(Constants.NotificationHubName, Constants.ListenConnectionString, firebaseInstance);

            var tags = new List<string> { tagName };

            connectionAzure.Register(FirebaseInstanceId.Instance.Id, tags.ToArray());

            throw null;
        }


    }


Constants.cs, FirebaseMassegingService.cs, MyFirebaseIIDService.csは上記リンク内のものと同じです。Constants内のListenConnectionStringとNotiticationHubNameはチュートリアルどおりNotificationHubのAccess Policiesから持ってきたものを使用しています。


どうやったらアプリケーションを端末にインストールするときと同じようにNotificationHubを宣言できるかわかる方はいらっしゃいませんか?

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

同じタグがついた質問を見る

  • Android

    6750questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Firebase

    681questions

    Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

  • Xamarin

    535questions

    Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

  • Azure

    231questions

    Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。