在安卓系统中,在2秒后检查设备是否漫游。

4
我正在开发一款与Android相关的应用程序,其中需要检查设备是否处于漫游状态。当我使用以下代码时:
Handler m = new Handler();

        m.postDelayed(new Runnable()
        { 
            public void run() 
            { 
                        if(telephonyManager.isNetworkRoaming())
                        {
                            Toast.makeText(getApplicationContext(), "Network is in Roaming", Toast.LENGTH_LONG).show();
                        }
                        else
                        {
                            Toast.makeText(getApplicationContext(), "Network not in Roaming", Toast.LENGTH_LONG).show();
                        }
            } 
        }, 2000);

但是它每2秒就会打印提示。 我希望只有当单元格位置从正常网络变为漫游时才打印提示。

您可以将此代码放置在BroadcastReceiver的onReceive方法中。然后它将自动进行检查。在清单文件中声明该接收器。 - Yogesh Somani
1个回答

0

声明一个广播接收器:

  public class ConnectivityChangedReceiver extends BroadcastReceiver{

  @Override
  public void onReceive( Context context, Intent intent )
  {
     //call the method of showing toast on network roaming changed. Make sure that method is in another activity. 
  }
  }

在清单文件中声明此接收器:

    <receiver android:name="com.yourproject.service.ConnectivityChangedReceiver"
        android:label="NetworkConnection">
        <intent-filter>
            <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
        </intent-filter> 
    </receiver> 

1
如果我从onReceive方法调用一个服务,它会检查漫游状态,会怎样? - user1724872
是的,你也可以这样做,但广播接收器本身会检查这种更改。 - Yogesh Somani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接