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