0

まず第一に私はapi 23を使用しています。アンドロイドNではなく、android.net.conn.CONNECTIVITY_CHANGEはまだ私のために働くはずですが、そうではありません。接続変更受信機が動作しませんか?

マニフェスト:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="enis.example.com.connectivitytest"> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 

     <receiver android:name="com.connectivitytest.ConnectionChangeReceiver" 
      android:label="NetworkConnection"> 
      <intent-filter> 
       <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> 
      </intent-filter> 
     </receiver> 
    </application> 

</manifest> 

ConnectionChangeReceiver

package com.connectivitytest; 

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 
import android.util.Log; 
import android.widget.Toast; 


public class ConnectionChangeReceiver extends BroadcastReceiver 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); 
     NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo( ConnectivityManager.TYPE_MOBILE); 
     if (activeNetInfo != null) 
     { 
      Toast.makeText(context, "Active Network Type : " + activeNetInfo.getTypeName(), Toast.LENGTH_LONG).show(); 
       Log.v("Active Network Type : ", activeNetInfo.getTypeName()); 

     } 
     if(mobNetInfo != null) 
     { 
      Toast.makeText(context, "Mobile Network Type : " + mobNetInfo.getTypeName(), Toast.LENGTH_LONG).show(); 

     }    Log.v("Mobile Network Type : ", activeNetInfo.getTypeName()); 



    } 
} 

そこにはトーストメッセージが私はちょうど明確にするログメッセージを追加一切ありませんが、それはlogcatに表示されませんでしたどちらか。 私も次のコードを試してみました:https://gist.github.com/mjohnsullivan/1fec89187b1274dc256e を私は受信機を持っていることの全体のポイントは、バックグラウンドで物事を行うことであることを意味し、それはすべて同じ、エラーませんが、何も起こりません、何トーストメッセージやメッセージ

+0

https://stackoverflow.com/a/17181263/115145 – CommonsWare

+0

私はどこかで読んだが、私はそれを完全に理解できませんでした。私は受信機を持っていることのすべてのポイントは、バックグラウンドで物事を行うことであり、今は前景で活動を実行することですか?利用可能なネットワークが存在するときに実行すべきタスク以外の何かが必要ない場合はどうすればよいですか?まずはアクティビティに何を書きますか?どのように動作するのですか?レシーバはネットワーク上でリッスンしてから利用できますか?申し訳ありませんが、私は非常に混乱しています。 –

答えて

1

を記録今、私は前景で活動をしていますか?

ユーザーは、いわゆるアプリがインストールされた後に配置されていることを「停止状態」のうち、あなたのアプリケーションを動かすために、一度あなたの活動を実行する必要があります。ユーザーがアプリをアンインストール、または

  • ユーザーが設定になり、あなたのアプリがリストで見つけ、「強制停止」ボタンをクリックする
    • :あなたが意図したとおりになるまでその後、あなたの受信機は、動作します

    この場合、ユーザーがあなたのアクティビティを再度起動するまで、アプリは停止状態に戻り、受信者は機能しなくなります。

    利用可能なネットワークがある場合に実行する必要のあるタスク以外は何も必要ない場合はどうすればよいですか?

    ほとんどの場合、ユーザーが設定するアプリの動作の側面があります。そして、そのためには、ユーザーはユーザーインターフェースが必要です。

    私はそもそも活動に何を書きますか?

    Playストアでの発送をご希望の場合は、プライバシーポリシーが必要です。

    関連する問題