2012-09-03 10 views
1

iam은 장치 설정을 특정 값으로 설정합니다. 내가 다음 코드를 사용하여 화면의 밝기와 글꼴 규모의 스피을 조정하려면 :안드로이드에서 화면 밝기와 글꼴 크기를 설정하는 방법

//For Font-Scale 
Settings.System.putFloat(this.getContentResolver(),Settings.System.FONT_SCALE,(float) 1.3); 
//For Brightness 
Settings.System.putString(this.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS,255); 
밝기의 값이 나는 화면 설정으로 이동하여 밝기 설정을 열어야 활성화 설정하는 제외한 변경 않습니다

및 확인을 누릅니다. 글꼴 눈금의 값은 변경되지 않습니다. 아마도 새로운 값을 얻기 위해 설정을 새로 고치는 방법이라고 생각합니다. 아무도 나를 도울 수 있습니까?

+0

귀하의 안드로이드 SDK 버전은 무엇입니까? –

+0

iam은 2.3 및 4.1에서 작동하며 모두 동일합니다 – AnasBakez

답변

2

이것은 앱으로 수행 할 수 없습니다. 이 설정을 적용하는 한 가지 방법은 전화를 재부팅하는 것입니다. 루트 액세스 권한이 있으면 비공개 API를 사용할 수 있습니다. 리플렉션을 사용하여 아래 코드를 사용하십시오.

당신이

PowerManagerService.setBacklightBrightness(brightness); 

전화 그리고

ActivityManagerNative.getDefault().updatePersistentConfiguration(mCurConfig) 
+0

재부팅 후 실제로 작동하는 친구 덕분에 모바일 – AnasBakez

+0

Cann't android는 특정 설정을 시스템에 적용하는 방법을 제공합니다. 다시 부팅해야하는 이유는 무엇입니까? –

0

체크 소스 코드 DisplaySettings.java을 변경해야 밝기를 변경하려면 여기 글꼴 크기 규모

public void writeFontSizePreference(Object objValue) { 
    try { 
     mCurConfig.fontScale = Float.parseFloat(objValue.toString()); 
     ActivityManagerNative.getDefault().updatePersistentConfiguration(mCurConfig); 
    } catch (RemoteException e) { 
     Log.w(TAG, "Unable to save font size"); 
    } 
} 
을 제어 할 수있는 방법이다

여기 다른 글꼴 크기로 글꼴 크기를 유지하는 솔루션입니다.

float textSize = 22f; 
mTextView.setTextSize(textSize/getResources().getConfiguration().fontScale); 

@shoe rat의 답변이 활동 또는 응용 프로그램 컨텍스트에 더 좋다고 생각합니다.

관련 문제