분류 전체보기 61

[토이 프로젝트] ADB, APK 앱배포 프로그램

AdbManagerGUI 안드로이드 디바이스에 앱을 설치해 주는 어플리케이션 구현. 프로젝트의 목적: 안드로이드 디바이스를 제어하는 도구를 GUI로 구현 윈도우 향 프로그램을 개발하며, C# 및 Java의 언어를 이용하여 구현한다. 프로젝트의 범위: android tools에서 필요한 adb, aapt의 기능을 이용하여 윈도우 화면으로 확인한다. 진행 단계: 개발 환경 구축. (완료) C#, Java, Android 프로젝트 디렉토리 생성. (완료) C#을 이용한 adb 설치, command code 전송 Gui 데모 (완료) Java Gui를 이용한 adb 제어 기능 데모 (준비) android tools의 aapt 제어 기능 데모 (준비) 결과물 C#을 이용한 단말기 제어 shell 접근 제어 기능(..

[안드로이드] shortcut의 구현

목적: 안드로이드의 쑛컷을 구현한다. 앱을 롱클릭했을때 바로가기가 보인다. %shortcut.xml은 난독화에서 제외 시킬것. 구현방법: AndroidManifest.xml res/xml/shortcuts.xml //인자 전달 MainActivity.java Intent intent = getIntent(); String extra_key = intent.getStringExtra("extra_key"); MyLog.i(TAG,"extra_key: "+extra_key); 참고자료: [1] 바로가기 만들기, https://developer.android.com/guide/topics/ui/shortcuts/creating-shortcuts?hl=ko [2] 기능스미카, https://developer.a..

안드로이드 2022.08.31

[안드로이드] 앱 알림설정 on off 활성 비활성화 차단 방법

앱 알림 설정이 on/off 확인 코드 NotificationManagerCompat.from(context).areNotificationsEnabled(); 앱 알림 설정 bordcastReceiver class BlockStateChangedReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { val blockedState = intent.getBooleanExtra(NotificationManager.EXTRA_BLOCKED_STATE, false) when (intent.action) { NotificationManager.ACTION_APP_BLOCK_STATE_CHANGED -> { ..

안드로이드 2022.04.26

[안드로이드] 앱(패키지) 설치 유무 확인

배경: 다른 앱관에 상호작용을 할때 해당 앱이 설치되어 있는지 확인이 필요한 경우가 있다. 코드: public static boolean isAppInstalled(Activity activity, String strAppPackage) { // PackageManager pm = activity.getPackageManager(); // PackageInfo pi; // // Intent i = pm.getLaunchIntentForPackage(strAppPackage); // if(i==null){ // return false; // }else{ // return true; // } String mpackagename = strAppPackage; try { PackageManager pm = ac..

안드로이드 2022.04.15

[android] 위치 정보 서비스 GPS/Network LocationTracker (Kotlin)

위치 정보 서비스를 얻어 오도록 구현. 구현방법 - AndroidManifest.xml - LocationTracker.kt import android.Manifest import android.app.Activity import android.content.Context import android.content.pm.PackageManager import android.location.Location import android.location.LocationListener import android.location.LocationManager import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatAc..

안드로이드 2021.11.25

[Android] EdtitText 필터 적용, 이모지 및 특수문자 입력 차단

한글 영어 숫자 만 입력되게 EditText 필터 적용 ( 특수기호 및 이모지입력 차단) etInput.setFilters(arrayOf( InputFilter { src, start, end, dst, dstart, dend -> //val ps = Pattern.compile("^[a-zA-Z0-9ㄱ-ㅎ가-흐]+$") //영문 숫자 한글 //영문 숫자 한글 천지인 middle dot[ᆞ] val ps = Pattern.compile("^[a-zA-Z0-9ㄱ-ㅎ가-흐ㄱ-ㅣ가-힣ᆢᆞ\\u318d\\u119E\\u11A2\\u2022\\u2025a\\u00B7\\uFE55\\s?!]+$") if (!ps.matcher(src).matches()) { return@InputFilter "" } else{ r..

안드로이드 2021.11.23

[Android] data Binding + liveData 적용 주의 ui not updated

주의점: 라이프 사이클 소유자가 설정해야합니다 있습니다 binding로 binding.setLifecycleOwner(this). MainViewModel에 대해서도 설정해야 합니다 binding. 그렇지 않으면 UI가 제대로 작동하지 않습니다. 확실하지 않은 경우 항상 여기에서 공식 문서를 확인하십시오. public class MainFragment extends Fragment { private MainViewModel mainViewModel; private FragmentMainBinding binding; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup containe..

안드로이드 2021.11.11

[Android] startActivityForResult deprecated kotlin

1. 배경 startActivityForeResult가 deprecated 되었다. override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) 의 복잡도가 높아진다는 이유로.. 2. 해결방안. 활동에서 결과 가져오기[2] 제일 아래 하단을 보면, 쉽게 알수 있다. - 자바 ActivityResultLauncher mStartForResult = registerForActivityResult(new StartActivityForResult(), new ActivityResultCallback() { @Override public void onActivityResult(ActivityResult result) { if (re..

안드로이드 2021.11.10

[Android] DPI 별 기준 해상도.

0)기준 해상도 잡는 방법. 디자이너와 협업시엔 xxxhdpi(640dpi,4px,1440 x 2560) 으로 협업하여, 고해상도의 이미지를 사용한다. (안드로이드에서 자동으로 해상도 제일 높은 xxxhdpi를 참고하여 단말기에 맞게 스케일링되어 사용된다.) 1) 해상도별 기준 사이즈 - drawable-mhdpi (160dpi, 1px) - img_goog.png (이미지는 360 x 640 기준으로 제작된 이미지 이여야함) - drawable-hdpi (240dpi, 1.5px) - img_goog.png (이미지는 540 x 960 기준으로 제작된 이미지 이여야함) - drawable-xhdpi (320dpi, 2px) - img_goog.png (이미지는 720 x 1280 기준으로 제작된 이미지..

안드로이드 2021.10.18

[Android] 리싸이클러 뷰 구현하기.

프로젝트 코드 - 자바로 구현 - 코틀린 구현 참고자료: - RecyclerView java [1] RecyclerView로 동적 목록 만들기, https://developer.android.com/guide/topics/ui/layout/recyclerview?hl=ko#kotlin [2] [RecyclerView] 안드로이드 리사이클러뷰 기본 사용법, https://dev-imaec.tistory.com/27 [3] [RecyclerView] 안드로이드 리사이클러뷰 아이템 클릭, https://dev-imaec.tistory.com/28 - RecyclerView FlexBoxLayout 참고자료 [4] [Android] FlexBoxLayout, https://woovictory.github.io/..

안드로이드 2021.10.04

[Android] Android local html 불러오기 (web으로 callback) (4/4)

목적: 안드로이드 웹뷰에서 안드로이드 브릿지를 이용해서 @JavascriptInterface의 메서드를 웹에서 호출할 수 있다. 호출에서 그치지 않고, 다시 웹으로 콜백(callback) 받는 방법을 구현해 본다. 방법: MyHome.html Android(aos) 호출 관련 (bridge는 aos) MyAndroidBridge.java package com.example.mywebview; import android.os.Handler; import android.util.Log; import android.webkit.JavascriptInterface; import android.webkit.WebView; public class MyAndroidBridge { private Handler mHan..

안드로이드 2021.09.30

[Android] Anroid local html 불러오기 (android bridge 구현) (3/4)

목적: 웹(javascript)에서 네이티브를 호출하기 위해서는, 안드로이드에서 @JavascriptInterface 에 해당하는 안드로이드 브릿지(bridge)를 연결 해줘야 한다. 구현방법: MyAndroidBridge.java package com.example.mywebview; import android.util.Log; import android.webkit.JavascriptInterface; public class MyAndroidBridge { @JavascriptInterface public void call_log(String msg){ Log.i(getClass().getName(),"call_log() msg:"+ msg); } } MainActivity.java this.mWeb..

안드로이드 2021.09.29

[Android] Anroid local html 불러오기 (assets/www/MyHome.html 호출) (2/3)

목적: 안드로이드 로컬에서 Html의 javascript를 호출 하는 코드 구현. 방법: 1) 메니페스트에서는 추가 필요 2) WebView에서는 mWebView.getSettings().setJavaScriptEnabled(true); // 자바스크립트 사용 허용!! 3) assets 폴더 추가. 4)html 코드 assets/www/MyHome.html 복사. (html 내용은 이전(1/3) 참고. 3) #특이사항 alert는 아래 상속 코드 구현 필요. this.mWebView.setWebChromeClient(new WebChromeClient(){ @Override //구현 하지 않으면 alert 반응 안함!! consol.log 생활화!! ^_^ public boolean onJsAlert(W..

안드로이드 2021.09.29

[Android] Anroid local html 불러오기 (javaScript onclick 구현) (1/3)

업무의 배경: 안드로이드 로컬에서 javascript function()을 호출하거나, 안드로이드의 @javascritInterface를 호출할 필요가 있다. 그중에서 테스트에 필요한 javascript html을 아래와 같이 구현한다. 구현 방법: Android(aos) 호출 관련 (bridge는 aos) 참고자료: [1] html javascript 구현, https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=tkddlf4209&logNo=220512073357 [2]안드로이드 로컬(assets) html 불러오기, https://dev.eyegood.co.kr/entry/Android-Local-Html-%EC%82%AC%EC%9A..

안드로이드 2021.09.29