0

我有一个 android 应用程序,当用户安装它并且运行这个应用程序时,如果设备可以访问互联网,我希望能够启动一项服务。

这是我的 mainfest.xml 服务和广播内容

 <receiver android:name="com.google.audiancelistening.WifiChangedBrodcast" >
        <intent-filter>
            <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />  
        </intent-filter>
    </receiver>

对于此解决方案,当打开 wifi 时,此广播将成功执行,但我想在我的应用程序的第一个启动它,所以我在我的活动中添加了以下代码:

  if(isInternetOn()){
                   Intent inten = new Intent(getApplicationContext(), ConnectionService.class);
                   getApplicationContext().startService(inten);

                   writeToSDFile();



                android.os.Process.killProcess(android.os.Process.myPid());

              } else{

                  writeToSDFile();



                android.os.Process.killProcess(android.os.Process.myPid());

              }

isInternetOn() 方法是一种检查互联网访问的方法,如下所示:

 public final boolean isInternetOn() {

    ConnectivityManager connec = null;
    connec =  (ConnectivityManager)getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
    if ( connec != null){

        NetworkInfo result = connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
        if (result != null && result.isConnectedOrConnecting());
        return true;
    }

    return false;
}

但是当我的活动执行并且首先访问互联网时,这将无法成功运行,并且当我关闭并打开我的 wifi 服务时启动并成功运行。:( 我不知道我的解决方案是什么,但我没有任何例外。

4

0 回答 0