반응형

WindowChangeDetect extends AccessibilityService

메니페스트 파일(xml)에 서비스 클래스명 등록 필수

https://jungwoon.github.io/android/2016/10/03/Accessibility-Service/

 

Accessibility Service 사용방법 - Jungwoon Blog

안드로이드 접근성 서비스를 이용하는 방법 설정해야하는 순서 android.accessibilityservice.AccessibilityService에서 상속받는 클래스 만들기 AndroidManifest.xml에 접근성 서비스 등록하기 res/xml/accessibility_service_config.xml 만들기 res/values/strings.xml 에 accessibility_description 추가하기 MainActivity 해당 앱의 패키지

jungwoon.github.io

https://github.com/Jungwoon/AccessibilityService

 

Jungwoon/AccessibilityService

Contribute to Jungwoon/AccessibilityService development by creating an account on GitHub.

github.com

https://pluu.github.io/blog/android/droidkaigi/2017/10/20/droidkaigi-2017-AccessibilityService/

 

Pluu Dev - [번역] DroidKaigi 2017 ~ AccessibilityService 를 사용해 앱의 가능성을 넓히자

Android Studio Tips #2 Posted on 24 Jul 2019 Android Studio Tips #1 Posted on 13 Jul 2019 [요약] Android Studio/ Tips and Tricks Part 3 ~ Build&Deploy (Google I/O '19) Posted on 07 Jul 2019 [요약] Android Studio/ Tips and Tricks Part 2 ~ Navigation Editor, Res

pluu.github.io

https://jinhobak.tistory.com/428

 

AccessibilityService 예제

설정에서 접근성을 체크하면 터치, 키보드 입력 등의 다양한 이벤트를 수신할 수 있다. - 노티 영역에 수집되는 정보를 추출 가능 (카톡 등과 같은 메신저 미리보기 서비스 이용하여 메시지 캐치가 가능) - 검색어..

jinhobak.tistory.com

 

반응형
반응형

Samsung Flow : 태블릿/PC와 갤럭시 휴대폰의 연동

https://youtu.be/srj0JNbpvqw

https://www.microsoft.com/ko-kr/p/samsung-flow/9nblggh5gb0m?activetab=pivot:overviewtab

 

Samsung Flow 구매 - Microsoft Store ko-KR

Microsoft Store에서 이 Windows 10용 앱을 다운로드하세요. 스크린샷을 보고, 최신 고객 리뷰를 읽고, Samsung Flow에 대한 평점을 비교하세요.

www.microsoft.com

Samsung Flow는 태블릿/PC와 갤럭시 휴대폰의 연동을 통해 편리한 기능을 제공합니다.

1. 태블릿/PC 간편 로그인 Samsung Flow에 등록이 완료된 Galaxy 휴대폰 또는 Samsung Wearable 인증을 통해 간편하고 안전하게 Windows 태블릿/PC에 로그인 할 수 있습니다. 태블릿/PC에 등록된 생체정보를 활용한 인증도 가능합니다. (*태블릿/PC에 등록된 생체정보를 활용한 인증은 삼성 디바이스에서만 가능합니다.)

2. 휴대폰 자동 핫스팟 연결
3. 휴대폰 알림 연동 휴대폰으로 오는 메시지나 알림을 태블릿/PC에서 확인하고 바로 답할 수 있습니다. (* 일부 앱은 해당 기능이 미지원 될 수 있습니다.) 4. 편리한 컨텐츠 전달 Samsung Flow로 연결된 태블릿/PC와 휴대폰 간의 컨텐츠를 간편하게 전달 할수 있습니다. 5. 휴대폰 화면 공유 휴대폰에서 보던 화면을 Windows 태블릿/PC에서 볼 수 있습니다. Samsung Flow: 소개영상 https://www.youtube.com/watch?v=srj0JNbpvqw Samsung Flow 상세 지원 기준에 맞는 제품이 필요합니다. 1. Windows 태블릿/PC : Windows 10 OS 크리에이터 업데이트 이상 (V1703), patch build (15063.413) Galaxy TabPro S, Galaxy Book, Galaxy Book2 등) 2. Android Marshmallow OS 이상 Galaxy Tab S4, Tab S3, Tab S2, Tab A (2018, 10.5), Tab A2, Tab Active 2, Tab A 10.1, Tab A (2017) 3. Android Marshmallow OS (6.0) 이상 Samsung Galaxy 스마트폰 * 스마트폰 사양에 따라서 일부 모델은 지원이 되지 않을 수 있습니다. 4. Tizen 3.0 이상 Galaxy Watch, Samsung Galaxy Watch Active, Samsung Gear S3, Samsung Gear Sports * Samsung Flow는 삼성전자에서 배포한 정식 Software에서 정상동작합니다. * 필수지원기능 : 블루투스 (Bluetooth LE optional) 또는 Wi-Fi/LAN 연결, Wi-Fi direct (Windows OS) Windows 10 사용자는 Windows store의 Samsung Flow를 다운로드 하세요. 설치방법은 Samsung Flow의 웹페이지를 참조하세요. www.samsung.com/samsungflow 만약 태블릿/PC에 탑재 된 Samsung Flow 앱을 최신 버전으로 업데이트 하지 않았다면, 윈도우 스토어>메뉴>다운로드와 업데이트 메뉴로 가서 해당 앱을 업데이트 하세요.

 

반응형
반응형
반응형
반응형

Hide the navigation bar - Android

https://developer.android.com/training/system-ui/navigation#behind

 

Hide the navigation bar  |  Android Developers

This lesson describes how to hide the navigation bar, which was introduced in Android 4.0 (API level 14). Even though this lesson focuses on hiding the navigation bar, you should design your app to hide the status bar at the same time, as described in Hidi

developer.android.com

This lesson describes how to hide the navigation bar, which was introduced in Android 4.0 (API level 14).

Even though this lesson focuses on hiding the navigation bar, you should design your app to hide the status bar at the same time, as described in Hiding the Status Bar. Hiding the navigation and status bars (while still keeping them readily accessible) lets the content use the entire display space, thereby providing a more immersive user experience.

You can hide the navigation bar using the SYSTEM_UI_FLAG_HIDE_NAVIGATION flag. This snippet hides both the navigation bar and the status bar:

View decorView = getWindow().getDecorView();
// Hide both the navigation bar and the status bar.
// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
// a general rule, you should design your app to hide the status bar whenever you
// hide the navigation bar.
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
              | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
반응형
반응형
반응형
반응형

안드로이드 : 웹뷰 404 에러처리

WebView.setWebViewClient(new WebViewClient() {
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}

@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);

switch (errorCode) {
case ERROR_AUTHENTICATION: // 서버에서 사용자 인증 실패
case ERROR_BAD_URL: // 잘못된 URL
case ERROR_CONNECT: // 서버로 연결 실패
case ERROR_FAILED_SSL_HANDSHAKE: // SSL handshake 수행 실패
case ERROR_FILE: // 일반 파일 오류
case ERROR_FILE_NOT_FOUND: // 파일을 찾을 수 없습니다
case ERROR_HOST_LOOKUP: // 서버 또는 프록시 호스트 이름 조회 실패
case ERROR_IO: // 서버에서 읽거나 서버로 쓰기 실패
case ERROR_PROXY_AUTHENTICATION: // 프록시에서 사용자 인증 실패
case ERROR_REDIRECT_LOOP: // 너무 많은 리디렉션
case ERROR_TIMEOUT: // 연결 시간 초과
case ERROR_TOO_MANY_REQUESTS: // 페이지 로드중 너무 많은 요청 발생
case ERROR_UNKNOWN: // 일반 오류
case ERROR_UNSUPPORTED_AUTH_SCHEME: // 지원되지 않는 인증 체계
case ERROR_UNSUPPORTED_SCHEME:
WebView.loadUrl("about:blank"); // 빈페이지 출력
AlertDialog.Builder builder = new AlertDialog.Builder(MyView.this);
builder.setPositiveButton("확인", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {

// 확인버튼 클릭시 이벤트

}});
builder.setMessage("네트워크 상태가 원활하지 않습니다. 어플을 종료합니다.");
// builder.setMessage("네트워크 상태가 원활하지 않습니다. 페이지를 이동합니다.");
builder.setCancelable(false); // 뒤로가기 버튼 차단
builder.show(); // 다이얼로그실행
break;
}}});
반응형
반응형

하이브리드앱, 웹뷰(WebView) 설정하기 - 안드로이드

안드로이드 스튜디오 설치하고.  https://developer.android.com/studio/

AndroidManifest.xml

// 인터넷 사용할꺼야 라고 선언
<uses-permission android:name="android.permission.INTERNET" />

layout.xml 

//웹뷰 등록 html로 비교하면 iframe 과 비슷하겠네요.
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"></WebView>

Java

private WebView mWebView; //웹뷰
private WebSettings mWebSettings; //웹뷰세팅

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

     // 웹뷰 세팅
     mWebView = (WebView)findViewById(R.id.webview); //레이어와 연결
     mWebView .setWebViewClient(new WebViewClient()); // 클릭시 새창 안뜨게
     mWebSettings = mWebView.getSettings(); //세부 세팅 등록
     mWebSettings.setJavaScriptEnabled(true); // 자바스크립트 사용 허용

     mWebView.loadUrl("http://m.nate.com"); //원하는 URL  입력
}

 


웹뷰 기본 옵션
mWebView.goBack(); //뒤로가기
mWebView.goForward(); //앞으로가기
mWebView.reload(); //새로고침

mWebView.clearCache(true); // 캐시 지우기
mWebView.reload(); // 현재 웹뷰 새로고침
mWebView.stopLoading(); // 로딩 중단

//스크롤 없애기
mWebView.setVerticalScrollBarEnabled(false);
mWebView.setHorizontalScrollBarEnabled(false);


웹뷰 세부 옵션

wvs = mWebView.getSettings();

wvs .setWebViewClient(new WebViewClient()); // 클릭시 새창 안뜨게
wvs .setJavaScriptEnabled(true); //자바스크립트 사용

wvs .setWebChromeClient(new webViewChrome()); // alert 경고창 사용

//화면 비율 관련 - 안드로이드 TV셋탑에서 웹뷰 사용할때 웹페이지 viewport가 적용안되서.
wvs .setUseWideViewPort(true); //wide viewport를 사용하도록 설정
wvs.setLoadWithOverviewMode(true); // 컨텐츠가 웹뷰보다 클 경우 스크린 크기에 맞게 조정
wvs.setInitialScale(35); //비율 조절
wvs.setDefaultFontSize(8); // 기본 폰트 사이즈 지정
wvs.setMinimumFontSize(8); //폰트 사이즈 지정

//웹뷰 멀티 터치 가능하게 (줌기능)
wvs .getSettings().setBuiltInZoomControls(true); //줌 아이콘 사용 설정
wvs .getSettings().setSupportZoom(false);

wvs .setPluginState(WebSettings.PluginState.ON_DEMAND); // 플러그인을 사용 설정
wvs .setCacheMode(WebSettings.LOAD_NO_CACHE); // 웹뷰가 캐시를 사용하지 않도록 설정

wvs .setDefaultZoom(WebSettings.ZoomDensity.FAR); // 페이지 크기 자동 조절?

뒤로 가기 버튼
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
        mWebView.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}


webViewExampleSettings.setSaveFormData(true);  입력된 데이터 저장 여부
webViewExampleSettings.setSavePassword(true);  입력된 비밀번호 저장 여부

 

반응형
반응형

App Icon Generator

https://appicon.co/#app-icon

반응형

+ Recent posts