volver studio sistema puedo porque inhabilitado esta deshabilitado deshabilitada como activar android webview android-7.1-nougat

studio - porque no puedo activar webview en android



Android Nougat 7.1 restablece la configuraciĆ³n regional despuĆ©s de iniciar WebView (1)

Aquí está mi solución alternativa.

Resolvimos ese problema al imponer la configuración regional de nuevo después de inicializar webView y antes de cargar contenido:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { MyApp.getApplication().switchToCzLocale(); }

Por ejemplo en WebActivity:

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_web); mWebView = (WebView) findViewById(R.id.webview); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { MyApp.getApplication().switchToCzLocale(); } mWebView.loadData(getString(R.string.web_content), "text/html", "charset=UTF-8"); }

MyApp:

import android.app.Application; import android.content.res.Configuration; import java.util.Locale; public class MyApp extends Application { private static MyApp sApplication; @Override public void onCreate() { super.onCreate(); switchToCzLocale(); sApplication = this; } public static MyApp getApplication() { return sApplication; } public void switchToCzLocale() { Locale mLocale = new Locale("cs","CZ"); Configuration config = getBaseContext().getResources() .getConfiguration(); Locale.setDefault(mLocale); config.setLocale(mLocale); getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); } }

Espero que eso pueda ayudar, ''.

Todavía estoy buscando una mejor solución.

Obtuvimos un comportamiento extraño con Android N 7.1 (API-25) que después del lanzamiento de WebView, el sistema impone restablecer el entorno local a la configuración regional del dispositivo. Eso anula la configuración regional utilizada (para localización) en la aplicación. Una forma sencilla de reproducir eso es obtener una localización en la aplicación. y lanza un WebView. Entonces ya no verás contenido localizado hasta que reinicies la aplicación nuevamente. Eso sucede solo en Android-7.1 (API-25)

Así es como cambio la configuración regional que funciona en todas las API:

public void switchToCzLocale() { Locale mLocale = new Locale("cs","CZ");// it can be any other Locale Configuration config = getBaseContext().getResources() .getConfiguration(); Locale.setDefault(mLocale); config.setLocale(mLocale); getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); }

He cargado una muestra para reproducir ese problema con más detalles sobre:

https://github.com/mabuthraa/WebView-android7-issue

Por favor, tengan alguna idea de si este comportamiento es un error o probablemente una mala implantación del cambio de configuración regional.

Aquí está el enlace para emitir ticket en el grupo de Android: Issue 218310: [preview de desarrollador] La creación de una WebView restablece la configuración regional a los valores predeterminados del usuario