본문 바로가기

전체 글110

개념과 핵심원리로 배우는 C++ 프로그래밍 2장 프로그래밍 문제 1. 알파벳 'C'부터 'K'까지 몇 개의 알파벳이 있는지 계산하는 프로그램을 작성하시오. #include using namespace std; int main(void){ char C = 'C'; char K = 'K'; cout 2023. 10. 31.
개념과 핵심원리로 배우는 C++ 프로그래밍 1장 프로그래밍 문제 1. 다음과 같이 출생 연도를 입력 받아서 나이를 출력하는 프로그램을 작성하시요. ex)출생 연도를 입력하세요. 1977 2002 한일월드컵 당시 한국 나이는 26세 입니다. #include using namespace std; int main(void){ int year; cout year; cout 2023. 10. 31.
[Android] Worker를 이용해 파일 저장하기 시작 기존에는 Thread를 이용해 파일을 저장하도록 했는데, 이 방법 보다는 Worker를 이용해 앱이 종료되더라도 파일 저장이 될 수 있도록 Worker를 사용해 코드를 수정했다. WorkerManager로 작업 요청하기 fun saveFiles(context: Context, slideshowModel: SlideshowModel): LiveData { // 1 WorkerManager를 생성 val workManager = WorkManager.getInstance(context) // 2 저장할 파일들의 Uri와 Name을 갖고 있을 ArrayList를 각 각 초기화 val saveInputDataMediaUris = ArrayList() val saveInputDataMediaNames = A.. 2023. 10. 31.
[Android] 바이트 관련 데이터를 형식에 맞춰 보여주기(파일 크기, 비트 전송률, 샘플링 주파수) 시작 아래 화면처럼 파일 크기, 비트 전송률, 샘플링 주파수를 사용자가 보기 좋게 형식에 맞춰 보여줘야 하는 작업을 하게 되었다. 공통적으로 구현되어야 할 부분과 다르게 구현할 부분만 조금 나눠주면 깔끔하게 구현할 수 있을 것 같다. 다른 부분 상황에 따라 1kb의 크기가 다르다. 파일, 비트 전송률, 샘플링 주파수 모두 1000b를 1kb로 계산할 것이지만 1024b로 계산하는 경우도 존재하니 다른 앱에서 재 사용할 경우를 생각해 구분할 수 있도록 구현할 예정이다. 보여줘야 할 단위가 각 각 다르다. 파일은 "TB", "GB", "MB", "KB", "B”, 비트 전송률은 "Tbps", "Gbps", "Mbps", "kbps", "bps” 샘플링 주파수는 "THz", "GHz", "MHz", "kHz".. 2023. 10. 26.
[Android] EXTERNAL 저장소의 미디어 파일 가져오기 EXTERNAL 저장소의 미디어 파일 가져오기 EXTERNAL 저장소에 있는 미디어 파일을 불러오는 방법은 크게 두 가지가 존재한다. 하나는 파일 앱에서 불러오는 것과 PICK 액션이 등록되어 있는 앱에서 불러오는 방법이 있다. 파일 앱에서 가져오기 먼저 파일 앱에서 불러오기 위해선 ACTION_GET_CONTENT 액션으로 요청해야 하며 가져올 타입이 필요하다. Intent getAudioIntent = new Intent(ACTION_GET_CONTENT); getAudioIntent.setType("audio/*"); // 타입에 따라 video/* , image/* 를 넣어주면 된다. startActivityForResult(getAudioIntent, AUDIO_REQUEST); startAct.. 2023. 10. 26.
[Android][Shortcut] 바로 가기 위젯 만드는 법 개요 회사 업무 중 Android 9에서 바로 가기 위젯이 workspace에 추가되지 않는 현상이 발생했는데, android12에서는 바로가기가 추가되는지 확인하기 위해 예제 프로젝트를 만들어 각 각 OS에서 테스트하게 되었다. 이 글은 테스트해보기 위해 만든 프로젝트를 정리한 글이다. 일단 바로 가기는 Widget이 아닌 Shortcut으로 분류가 된다. App shortcuts overview | Android Developers Learn how to add shortcuts to specific actions within your app. developer.android.com 따라서 AppWidgetProvider는 필요하지 않지만 대신 res/xml에 shortcuts.xml 을 정의해줘야 .. 2023. 10. 23.
[Android] [MediaMetadataRetriever]영상 데이터가 존재하는지 확인하는 법 시작 MP4 파일의 경우 영상 섬네일이 없이 오디오만 녹음된 경우가 있다. 때문에 영상 아이템이 아닌 음악 아이템으로 첨부해야 하는 경우가 있어 영상 데이터가 존재하는지 확인해야 했다. MediaMetadataRetriever 를 사용 MediaMetadataRetriever를 사용하면 Media 파일의 몇 가지 정보들을 알아 올 수 있다. fun isVideoFile(context: Context, uri: Uri):Boolean{ try{ val retriever = MediaMetadataRetriever() retriever.setDataSource(context, uri) val hasVideo = retriever.extractMetadata(MediaMetadataRetriever.METAD.. 2023. 10. 20.
[Android] 가로 모드에서 확장형 키보드 막기 xml 또는 java 파일을 수정해 가로 모드에서 확장형 키보드를 막을 수 있다. 1. xml 에서 막는 경우 android:imeOptions="flagNoExtractUi” 속성을 추가해 막을 수 있다. 2. java 에서 막는 경우 editText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI); 2023. 10. 11.
[Android] 단말기 정보 가져오기 시작 Android 11 버전 이상에서 TelephonyManager를 이용해 안드로이드 단말기의 정보를 가져오는 방법에 대해 정리해보려 한다. 가져오는 정보들을 통해 특정 기능들의 활성화 또는 비활성화 처리를 구분 할 수 있으니 응용할 곳이 많다고 할 수 있다. 권한 부여 단말기 정보를 가져오기 위해선 권한을 요청해야 하는데, 전화번호를 가져오는 권한은 아래처럼 변경되었다. Android 11에서는 앱에서 전화번호를 읽을 때 사용하는 전화 관련 권한이 변경됩니다. 앱이 Android 11 이상을 타겟팅하고 다음 목록에 표시된 전화번호 API에 액세스해야 한다면 READ_PHONE_STATE 권한 대신 READ_PHONE_NUMBERS 권한을 요청해야 합니다. 클래스 파일에서 권한을 요청하는 부분에 안드.. 2023. 8. 3.