브라우저의 배경을 어둡게 하는 방법은 여러가지 있는데 그 중 Dark Reader를 이용한 방법을 설명합니다. 테스트를 해보니 기능이 나쁘지는 않은 것 같습니다. Dark Reader는 오픈 소스로 모든 소스가 공개되어 있고 필요 하다면 Git에서 다운 받아 수정을 할 수도 있습니다


browser background dark reader


Dark Reader Chrome뿐 아니라 Firefox, Safari, Edge용도 있습니다여기서는 Chrome에서 사용하는 방법을 설명 합니다.

프로그램은 크롬에 라이브러리 형태로 설치가 됩니다인터넷에서 검색을 하거나 아래 링크를 클릭하여

 

https://chrome.google.com/webstore/detail/dark-reader/eimadpbcbfnmbkopoojfekhnkhdbieeh?hl=ko

 

사이트에 접속 해서 


browser background dark reader


우측 파란색 [Chrome에 추가] 버튼을 클릭하면


browser background dark reader


추가할거냐고 물어보는 창이 나오면 [확장 프로그램 추가] 버튼을 클릭 하여 설치를 진행 합니다설치 즉시 바로 적용이 되어 크롬 바탕화면이 검은 색으로 변경이 됩니다.


browser background dark reader


추가적인 기능들을 알아 보기 위해 Dark Reader 관리 창을 오픈 해야 하는데 크롬 브라우저 우측 상단의 확장프로그램 아이콘을 클릭 합니다.


browser background dark reader


팝업 메뉴에서 Dark Reader를 클릭 하면 보이지 않던 아이콘이 크롬에 활성화 됩니다그럼 아이콘을 누르고


browser background dark reader


관리 창 팝업이 나타나는데 메뉴를 하나씩 살펴 보도록 하겠습니다먼저 상단에 켬/끔이 있는데 이건 설명이 필요 없을 것 같고 [필터] 탭에 있는 기능을 보면

 

어두운 테마/밝은 테마

어두운 테마는 지금처럼 바탕이 까만거고 밝은 테마는 바탕을 회색으로 변경 합니다. 너무 어두운게 싫으면 이 방법이 좋을 듯 합니다.


browser background dark reader


밝기

밝기는 배경의 밝기를 조절 합니다값이 마이너스(-)로 커지면 좀더 어두워 집니다.


browser background dark reader


대비

대비는 색상 대비로 검은색을 좀더 진하게 해줍니다. 값을 마이너스로 하면


browser background dark reader


이렇게 흐리멍텅 하게 변합니다.

 

세피아 필터

세피아 필터는 글씨에 대한 필터 입니다.


browser background dark reader




browser background dark reader


흑백 필터

흑백 필터도 글씨에 대한 필터로 


browser background dark reader


흑백 필터를 적용 하면


browser background dark reader


글씨가 흑백의 명암으로 변경 됩니다.

 

사이트 목록 탭

Dark Reader 를 적용하거나 제외하려는 사이트 목록을 입력해서 관리하는 메뉴 입니다.


browser background dark reader


설정들을 잘 조절해서 자신에게 적합한 배경을 만들면 눈의 피로를 조금이나마 줄일 수 있을것 같습니다.

 

 

삭제 방법

삭제 방법은 확장 프로그램 팝업 창을 열고


browser background dark reader


[확장 프로그램 관리]를 선택 합니다.


browser background dark reader


관리 화면에서 삭제를 클릭하면 됩니다아니면 처음 설치 화면으로 들어 갑니다.


browser background dark reader


설치가 삭제로 변경되어 있고 [Chrome 에서 삭제]를 클릭하여 제거하면 됩니다.


- copy coding -


예전에 구글에서 제공하는 소스를 이용하여 구글 맵에 현재의 위치를 표시하는 앱을 만들었는데 최근에 다시 가보니 현재의 Android Studio 버전에 적용되는 library들로 source code가 변경이 되어 있네요오랜만에 다시 구현을 해보았습니다.

Android Studio 4.0을 사용해서 구현한 화면 입니다.


android place not authorized


 

모든 동작은 예전처럼 잘 되는데 이상하게 우측 [GET PLACE]를 누르면 아무런 동작도 하지 않습니다.  logcat을 살펴 보니 오류가 발생 하는 군요

 

21814-21814/copycoding.tistory.mylocation E/MainActivity: Exception: %s

 com.google.android.gms.common.api.ApiException: 9011: This API project is not authorized to use this API.

at com.google.android.libraries.places.internal.zzce.then(com.google.android.libraries.places:places@@2.3.0:6)

 

com.google.android.libraries.places를 사용할 권한이 없다는 건데 예전 소스코드에서 library의 변화가 있었나 봅니다권한이 없다고 하니 문제를 해결하러 API 관리 페이지에서 답을 찾아봅니다.


Google API 관리 사이트로 가보면 사용 설정된 API 목록을 볼 수 있습니다.


android place not authorized


현재 2개의 API를 사용하고 있다고 나오는 군요.

바로 아래쪽에 추가 API 목록이 있습니다.


android place not authorized


아무래도 여기에 있는 Places API가 원인인 것 같은데 선택을 합니다.


android place not authorized


[사용설정] 버튼을 클릭하면 권한을 받아오고 상단의 사용 설정된 API에 추가 됩니다.


android place not authorized


잘 추가가 되었군요.

이제 다시 앱을 실행해 볼까요?


android place not authorized


위치정보도 잘 가져오고 있습니다그 전에도 여기까지만 하고 손을 놓았는데 이번에는 꼭 뭔가를 만들어 보고 싶군요.


- copy coding -


안드로이드 프로젝트에서 설정 값들은 대부분 values/strings.xml에 등록해 놓는데 strings에 입력하지 않고 별도의 파일에 입력을 하지만 strings에 있는것 처럼 사용할 수 있는 방법입니다.





Properties() 함수를 이용하면 되는데 사용방법은

secure.properties 파일을 프로젝트 내 임의의 위치에 생성하고 내용에

 

MAPS_API_KEY=AIxxxxxxXXXXXXxxxxxxxXXXXXXXxxxxxxXxN_K8

 

이런 식으로 설정 값을 입력 합니다.

그리고 build.gradle(Module) 파일에 설정한 값을 읽어 올 수 있도록 Properties 함수를 추가 합니다.

 

defaultConfig {
   
applicationId
"copycoding.tistory.mylocation"
   
minSdkVersion 16
   
targetSdkVersion 29
   
versionCode 1
   
versionName "1.0"

   
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

   
// Read the API key from ./secure.properties into R.string.maps_api_key
   
def secureProps = new Properties()
   
if (file("../secure.properties").exists()) {
        file(
"../secure.properties")?.withInputStream { secureProps.load(it) }
   
}
    resValue
"string", "maps_api_key", (secureProps.getProperty("MAPS_API_KEY") ?: "")
}

 

이렇게 하면 secure.properties 파일에 설정한 값을 가져옵니다파일 명과 파일 위치는 어디에 생성 했는가에 따라 수정을 하면 됩니다.

 

 

이제 AndroidManifest.xml 에서 설정 값을 사용하는 방법 입니다.

 

<meta-data
   
android:name="com.google.android.geo.API_KEY"
   
android:value="@string/maps_api_key" />

 

그냥 strings.xml에 입력해 놓은 것 처럼 동일한 방법으로 사용이 가능 합니다.


- copy coding -


구글 메일을 잘 쓰지 않아서 오랜만에 들어가 보았더니 Adsense에서 게시자 정책을 위반했다고 메일을 보내왔습니다.


adsense 정책위반 보고서


가끔 gmail에 들어가면 google에서 메일이 많이 보내와 있지만 대부분 읽지 않는데 처음 보는 정책 위반이라고 해서 한번 클릭을 해 보았습니다.


adsense 정책위반 보고서


메일이 형식적인 문구이어서 메일만 읽어 보아서는 뭐가 문제인지 알 수 없습니다상세 내용을 파악 하려면 애드센스 사이트에 들어가 계정>정책 센터 메뉴를 선택하면 됩니다.


adsense 정책위반 보고서


귀찮죠? 그냥 메일의 윗부분에 있는 파란색 [애드센스 정책 센터]를 클릭 하면 Adsense 정책 센터 페이지로 바로 이동을 합니다. 물론 gmail을 읽고 있으니 구글에 로그인이 되어있는 상태여야 합니다.


adsense 정책위반 보고서


여기서 [문제가 있는 사이트] 항목의 오른쪽 끝부분 >를 클릭 하면 이번에는 개요 페이지로 이동 합니다.


adsense 정책위반 보고서


이번에는 [페이지 문제] 항목의 오른쪽 끝 부분 아래쪽 방향표시(v)를 클릭 합니다.


adsense 정책위반 보고서


페이지의 간략한 정책 위반 내용과 해결 방법을 제시하고 있습니다.

상세 위반 내용을 보려면 우측 [문제 관련 세부정보]에 기술되어 있으니 클릭 합니다.


adsense 정책위반 보고서


그런데 위반 사항을 읽어보고 99번 게시글을 읽어보고 또 봐도 도저히 이해가 가지 않네요.

클릭을 구걸한 적도 없고 광고는 상단과 하단에 배치하고 나머지는 GOOGLE이 알아서 추가하는 자동 삽입 광고인데 구글이 광고를 삽입하고 잘못은 나에게 뒤집어 씌우기를 하고 있다니....

어차피 블로그에 찾아오는 사람도 별로 없고 잘 누르지도 않는 광고 때문에 기분 상하게 하는 메일을 받게 되니 이참에 광고를 제거 해야 하나일단은 해결책이 떠오르지 않는데 그냥 무시하고 내비 두는 수 밖에 없을것 같네요.

어째든 애드센스에서 정책 위반 보고서 메일이 오면 이런 식으로 원인을 찾아서 해결할 수 있는 문제라면 처리를 하고 검토 요청을 하면 됩니다.


- copy coding -


1···35363738394041···118

+ Recent posts