0

私は PhoneGap を使用しているので、利用可能な場合は Web ページを表示できます。利用できない場合は、アセットのカスタム Web ページを使用します。いくつかの機能を試しましたが、どれも機能していません。私を助けて、私が間違っていることを確認してください。

    package com.test.project;

    import java.net.HttpURLConnection;
    import java.net.URL;

    import org.apache.cordova.DroidGap;

    import android.os.Bundle;
    import android.widget.Toast;

    public class MainActivity extends DroidGap {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.setIntegerProperty("splashscreen", R.drawable.splash);
    super.setIntegerProperty("loadUrlTimeoutValue", 70000);

    if (isSiteAvailable()) {

        super.loadUrl("http://m.mywebsite.com", 10000);
        Toast.makeText(getApplicationContext(), "Ima!", Toast.LENGTH_SHORT).show();

    } else {

        super.loadUrl("file:///android_asset/www/index.html", 10000);
        Toast.makeText(getApplicationContext(), "nemaaa!", Toast.LENGTH_SHORT).show();    
    }
}
public boolean isSiteAvailable() {

    try {
        URL u = new URL("http://www.google.com");
        HttpURLConnection huc =  (HttpURLConnection) u.openConnection(); 
        huc.setRequestMethod("GET"); 
        huc.connect(); 
        huc.setRequestProperty("Connection", "close");
        huc.setConnectTimeout(2000); // Timeout 2 seconds.
        int response=huc.getResponseCode();

        if ((response >= 400) || (response < 200))
            return false;

        return true;
    }
    catch (Exception e) {
        // TODO Auto-generated catch block
        System.out.println("OOPSIE");
        e.printStackTrace();
    } 

    return false;
}

}

マニフェストにはインターネットとネットワークのアクセス許可があり、config.xml は私の Web サイトの URL を許可しており、接続のチェック以外はすべて正常に機能します。何が問題なのか教えてください。SDK のバージョンは 8 から 17 です。Eclipse を再起動して何度かクリアしました。

一日中トピックを読んでいますが、問題が見つかりません。

これは私のマニフェストです

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="rs.mujen.nekretnine"
android:versionCode="1"
android:versionName="1.3" >

<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:resizeable="true"
    android:smallScreens="true" />

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:resizeable="true"
    android:smallScreens="true" />

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
    android:allowBackup="true"
    android:hardwareAccelerated="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:permission="android.permission.ACCESS_CHECKIN_PROPERTIES"
    android:testOnly="false"
    android:theme="@style/AppTheme" >
    <activity
        android:name="rs.mujen.nekretnine.MainActivity"
        android:configChanges="orientation|keyboardHidden"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="org.apache.cordova.DroidGap"
        android:configChanges="orientation|keyboardHidden"
        android:label="@string/app_name" >
        <intent-filter>
        </intent-filter>
    </activity>
</application>

4

1 に答える 1

0

ネットワーク遅延は時間とは無関係であるため、接続時間をコメントアウトします

主な問題は、接続を伴う urlconnection の setRequestProperty() --> close で、接続を閉じます。

public boolean isSiteAvailable() {

try {
    URL u = new URL("http://www.google.com");
    HttpURLConnection huc =  (HttpURLConnection) u.openConnection(); 
    huc.setRequestMethod("GET"); 
    huc.connect(); 
    //huc.setRequestProperty("Connection", "close");
    //huc.setConnectTimeout(2000); // Timeout 2 seconds.
    int response=huc.getResponseCode();

    if ((response >= 400) || (response < 200))
        return false;

    return true;
}
catch (Exception e) {
    // TODO Auto-generated catch block
    System.out.println("OOPSIE");
    e.printStackTrace();
 } 

 return false;
}

これらのコードがうまくいくことを願っています! :)

于 2012-12-31T16:44:55.920 に答える