Wie Sie wissen, Android-Entwickler:Fix Fragment Injection-Schwachstelle in Xamarin Android
Ab 1. März 2017 wird Google blockieren Wiedergabe Veröffentlichung sämtlicher neuen Apps oder Updates, bei denen PreferenceActivity Klassen Fragment Injection anfällig sein kann
In der Seite https://support.google.com/faqs/answer/7188427 gibt es einige Hinweise, wie man diese Schwachstelle beheben kann aber was ist mit den Anwendungen, die mit Xamarin entwickelt wurden?
Ich konnte dazu keine Informationen finden. Er sagt, dass meine betroffene Klasse ist SettingActivity, die von PreferenceActivity erbt, und meine Klasse SettingActivity ist dies:
[Activity(
Label = "@string/ApplicationName",
Icon = "@drawable/ic_launcher",
Theme = "@android:style/Theme.Holo.Light",
ParentActivity = typeof(MainActivity))]
[IntentFilter(
new [] {Intent.ActionManageNetworkUsage},
Categories= new [] {Intent.CategoryDefault}
)]
public class SettingsActivity : PreferenceActivity
{
public static readonly string KeyWifiOnly = "pref_wifi_only";
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
AddPreferencesFromResource(Resource.Xml.preferences);
ActionBar.SetHomeButtonEnabled(true);
ActionBar.SetDisplayHomeAsUpEnabled(true);
PreferenceManager.SetDefaultValues(this, Resource.Xml.preferences, false);
SetupNetworkPreferences();
}
private void SetupNetworkPreferences()
{
var prefs = PreferenceManager.GetDefaultSharedPreferences(this);
ListPreference list = FindPreference(
AppSettings.PreferenceNetworkProvider) as ListPreference;
list.SetEntries(
Enum.GetNames(typeof(AppSettings.FtpHostNetwork)));
list.SetEntryValues(Enum
.GetValues(typeof(AppSettings.FtpHostNetwork))
.Cast<int>()
.Select(x => x.ToString())
.ToArray());
}
protected override void OnResume()
{
base.OnResume();
var tracker = (Application as App).Tracker;
tracker.Screen("PantallaPreferencias");
}
}
Versuchen gesetzt Export auf false '[Aktivität ( Label = "@ Zeichenfolge/Application", Exportiert = false, Icon = "@ ziehbar/ic_launcher", Theme =„@android: Stil/Thema. Holo.Light“, Parent = typeof (MainActivity))] [IntentFilter ( new [] {} Intent.ActionManageNetworkUsage, Kategorien = new [] {} Intent.CategoryDefault )]' –
Ja, das ist der Trick . Vielen Dank Mike. Du hast gerade meinen Job gerettet – GalloPinto