广播接收者不注册

时间:2011-08-02 05:42:44

标签: android

在我的应用程序中,我正在使用互联网连接。我想通过我的应用程序检查互联网连接,所以我正在使用广播接收器。 我已经在清单中注册接收器,但不知道为什么它不工作。可以有人帮助....注册接收器有任何错误...我已经登录接收方法来检查它是否获得注册但是log永远不会得到print.and当我通过代码注册广播接收器然后它工作正常......

这是我的代码...... `

<receiver android:name="com.android.fishdemo.CheckInternetConnectionChangeReceiver">
 <intent-filter>
   <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
   <action android:name="android.net.ConnectivityManager.CONNECTIVITY_ACTION" />
  </intent-filter>
</receiver>`

2 个答案:

答案 0 :(得分:0)

根据我们的讨论......

您需要在活动中注册您的Receiver并将其设置为全局,以便您可以在任何地方访问它..

因为您还需要在关闭应用程序时取消注册接收器。

我建议您在主要活动oncreate方法中注册接收器,并在onKeyDown / onBackKeyPressed方法中取消注册。什么时候你的申请将被关闭..

ook

希望这有帮助

由于 沙...

答案 1 :(得分:0)

通过此工作代码检查网络(移动数据和WIFI):

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    this.context = context; 
    ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService( Context.CONNECTIVITY_SERVICE );
    NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
    NetworkInfo WIFINetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    settings = context.getApplicationContext().getSharedPreferences(PREFS_NAME, 0);
    email = settings.getString("email", null);

    if(mobNetInfo.isConnected() || WIFINetInfo.isConnected()){ // write your code here to handle something}
相关问题