1
다음은 Java 클래스입니다. 내 프로젝트에서PreferenceActivity의 구현은 프래그먼트 삽입에 취약합니다.
public class MyPrefrences extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
는 나는이 새로운 구글의 보안 정책에 따라 해결할 수있는 방법을 preferences.xml로
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="@string/steps_settings_title">
<ListPreference
android:key="sensitivity"
android:title="@string/setting"
android:summary="@string/setting_details"
android:entries="@array/preference"
android:entryValues="@array/preference_values"
android:dialogTitle="@string/setting_title"
android:defaultValue="30" />
<ListPreference
android:key="operation_level"
android:title="@string/operation_level_setting"
android:summary="@string/operation_level_setting_details"
android:entries="@array/operation_level_preference"
android:entryValues="@array/operation_level_preference_values"
android:dialogTitle="@string/operation_level_setting_title"
android:defaultValue="30" />
<ListPreference
android:key="units"
android:title="@string/units_setting"
android:summary="@string/units_setting_details"
android:entries="@array/units_preference"
android:entryValues="@array/units_preference_values"
android:dialogTitle="@string/units_setting_title"
android:defaultValue="imperial" />
<com.example.myapp.preferences.StepLengthPreference
android:key="length"
android:title="@string/length_setting"
android:summary="@string/length_setting_details"
android:dialogTitle="@string/length_setting_title"
android:defaultValue="20" />
<com.example.myapp.preferences.BodyWeightPreference
android:key="body_weight"
android:title="@string/weight_setting"
android:summary="@string/weight_setting_details"
android:dialogTitle="@string/weight_setting_title"
android:defaultValue="50" />
<ListPreference
android:key="exercise_type"
android:title="@string/type_setting"
android:summary="@string/type_setting_details"
android:entries="@array/type_preference"
android:entryValues="@array/type_preference_values"
android:dialogTitle="@string/type_setting_title"
android:defaultValue="running" />
<ListPreference
android:key="maintain"
android:title="@string/maintain_setting"
android:summary="@string/maintain_setting_details"
android:entries="@array/maintain_preference"
android:entryValues="@array/maintain_preference_values"
android:dialogTitle="@string/maintain_setting_title"
android:defaultValue="none" />
</PreferenceCategory>
</PreferenceScreen>
을 사용했다. PreferenceActivity 클래스가 Fragment Injection의 영향을받을 수있는 안전하지 않은 구현이 앱에 있습니다. Manifest에서 영향을받는 PreferenceActivity에 대해 exported = false 집합을 사용합니다. isValidFragment의 잘못된 구현 어떻게 수정 될 수 있습니까?
는 메시지가 제안하는 일을 시도해야? '당신의 Manifest에서 영향받은 PreferenceActivity에 대해 exported = false를 설정 했습니까? ' –
위의 클래스에서 isValidFragment를 재정의하려면 –
exported = false, 내 scenerio에서 작동하지 않습니다. –