0

やりたいこと (たとえばこれ): 1.- GCM が到着する 2.- バックグラウンドで実行されているサービスからサーバーにデータをアップロードします (GCM が到着したときにアラートを表示したり、サウンドを再生したりしたくありません)。おそらく、デバイスの現在の場所をサーバーにアップロードします。

これを Phonegap から実行したいので、プラグインを作成するか、JavaScript ソースとサービスを通信するプラグインを見つける必要があると思います。サービスからメッセージを受信するのに Phonegap は必要ありませんが、必要なデータをアップロードするのはサービス自体です。つまり、Phonegap を UI として使用し、すべての作業を行うサービスを開始します。また、ユーザーが自分の電話を pn にするたびにサービスを開始する必要があります (サービス構成から来ると思います) が、ユーザーは少なくとも 1 回アプリを起動する必要があると思います (これは正常だと思いますよね?) .

現在の私の問題は、GCM が到着したときにサービスに「何か」を行うように指示する方法がわからないことです。アドバイスをいただければ幸いです。

4

1 に答える 1

0

サービスで GCM メッセージを受信するたびに、非常に簡単です。

@Override
protected void onMessage(final Context arg0, final Intent arg1) {
    String arr=arg1.getStringExtra("message");
    arr2=arr.split("-");

    Handler h = new Handler(Looper.getMainLooper());
       h.post(new Runnable(){

            public void run() {
                // TODO Auto-generated method stub
            Toast.makeText(arg0, arr2[0], Toast.LENGTH_LONG).show();
               if(arr2[0]=="desired value"){
               //launch a method in your service that post data to your server using requests
                  }
    }         
        });
}

ここで、すべての位置データを収集してサーバーに送信するサービスでメソッドを宣言し、そのメソッドを void run() で呼び出します。

このソリューションがお役に立てば幸いです。

于 2013-08-21T17:47:16.983 に答える