Fragen Sie den Benutzer zu starten, WiFi oder 3G über das starten einer android-app, wenn keine Verbindung zum Internet
Eine android-app, greift auf die online-Seiten mithilfe von WebView ist, was ich arbeite. Ich will auch eine option, wo, wenn der Benutzer nicht mit dem internet verbunden, wird die Anwendung aufgefordert wird, schalten Sie auf WiFi oder 3G.
Was ist der beste Weg, dies zu erreichen Benutzerfreundlichkeit Sicht?
Den code ist unten angegeben:
package com.url.appname;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.Window;
import android.webkit.ValueCallback;
import android.webkit.WebView;
import android.webkit.WebChromeClient;
import android.webkit.WebViewClient;
import android.widget.Toast;
public class MainActivity extends Activity {
private WebView wv;
private ValueCallback<Uri> mUploadMessage;
private final static int FILECHOOSER_RESULTCODE=1;
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent intent) {
if(requestCode==FILECHOOSER_RESULTCODE)
{
if (null == mUploadMessage) return;
Uri result = intent == null || resultCode != RESULT_OK ? null
: intent.getData();
mUploadMessage.onReceiveValue(result);
mUploadMessage = null;
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
wv = new WebView(this);
// wv = (WebView) findViewById(R.id.webview);
wv.loadUrl("http://www.url.com");
//Let's display the progress in the activity title bar, like the
//browser app does.
getWindow().requestFeature(Window.FEATURE_PROGRESS);
wv.getSettings().setJavaScriptEnabled(true);
final Activity activity = this;
wv.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
}
});
wv.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
//Activities and WebViews measure progress with different scales.
//The progress meter will automatically disappear when we reach 100%
activity.setProgress(progress * 100);
}
//For Android 3.0+
public void openFileChooser( ValueCallback<Uri> uploadMsg, String acceptType ) {
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("image/*");
MainActivity.this.startActivityForResult( Intent.createChooser( i, "File Chooser" ), MainActivity.FILECHOOSER_RESULTCODE );
}
//For Android < 3.0
public void openFileChooser( ValueCallback<Uri> uploadMsg ) {
openFileChooser( uploadMsg, "" );
}
//For Android > 4.1
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture){
openFileChooser( uploadMsg, "" );
}
});
setContentView(wv);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}e
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen Sie eine
AlertDialog
wenn es nicht eine Netzwerk-Verbindung zu dem Benutzer mitteilen und auffordern.Verwenden Sie diesen code als Beispiel...
Erstellen einer
Intent
mitSettings.ACTION_WIRELESS_SETTINGS
so eine Aktion startet die eingebaute Aktivität für das Netzwerk Einstellungen.builder
Fehler gibtCannot refer to a non-final variable builder inside an inner class defined in a different method
The constructor AlertDialog.Builder(new WebViewClient(){}) is undefined
können Sie erklären, wie es zu lösen ist? Ich habe platziert den code in (WebViewClient(){code here}
); ist es der richtige Ort?