1
正如你所知道的Android开发者:修复片段注入漏洞
起2017年3月1日,谷歌Play不会阻止任何新的应用程序或更新的发布,这些PreferenceActivity类可能会受到片段注射
在页面https://support.google.com/faqs/answer/7188427它提供了一些建议,如何解决这个漏洞但是用Xamarin开发的应用程序呢?
我还没有找到关于此的任何信息。它说,我受影响的类是SettingActivity,从PreferenceActivity继承和我的课SettingActivity是这样的:
[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");
}
}
尽量设置导出到假'【活动( 标签= “@字符串/应用程序名称”,远销=假, 图标= “@绘制/ ic_launcher”, 主题=“@android:风格/主题。 Holo.Light”, ParentActivity = typeof运算(MainActivity))] [IntentFilter的( 新的[] {} Intent.ActionManageNetworkUsage, 分类=新[] {} Intent.CategoryDefault )]' –
是的,这做的伎俩。非常感谢迈克。你刚刚救了我的工作 – GalloPinto