'Tip > Android' 카테고리의 다른 글
Galaxy(갤럭시) 에서 한자 입력하기 (0) | 2024.10.09 |
---|---|
Hexa Game 개인 정보 처리 방침 / Hexa Game Application Privacy Policy (0) | 2023.08.30 |
직각 삼각형 대각선 길이 구하기 앱 개인 정보 처리 방침 / Triangle Application Privacy Policy (0) | 2023.08.30 |
Galaxy(갤럭시) 에서 한자 입력하기 (0) | 2024.10.09 |
---|---|
Hexa Game 개인 정보 처리 방침 / Hexa Game Application Privacy Policy (0) | 2023.08.30 |
직각 삼각형 대각선 길이 구하기 앱 개인 정보 처리 방침 / Triangle Application Privacy Policy (0) | 2023.08.30 |
Galaxy(갤럭시) 에서 키보드 번역 기능 사용하기 (1) | 2024.10.09 |
---|---|
Hexa Game 개인 정보 처리 방침 / Hexa Game Application Privacy Policy (0) | 2023.08.30 |
직각 삼각형 대각선 길이 구하기 앱 개인 정보 처리 방침 / Triangle Application Privacy Policy (0) | 2023.08.30 |
Hexa Game 앱은 어떠한 개인 정보도 수집하지 않습니다.
Hexa Game does not collect any personal information.
Galaxy(갤럭시) 에서 한자 입력하기 (0) | 2024.10.09 |
---|---|
직각 삼각형 대각선 길이 구하기 앱 개인 정보 처리 방침 / Triangle Application Privacy Policy (0) | 2023.08.30 |
제비뽑기 앱 개인 정보 처리 방침 / ChooseOne Application Privacy Policy. (0) | 2023.08.30 |
직각 삼각형 대각선 길이 구하기 앱은 어떠한 개인 정보도 수집하지 않습니다.
Triangle application does not collect any personal information.
Hexa Game 개인 정보 처리 방침 / Hexa Game Application Privacy Policy (0) | 2023.08.30 |
---|---|
제비뽑기 앱 개인 정보 처리 방침 / ChooseOne Application Privacy Policy. (0) | 2023.08.30 |
솔리테어 개인 정보 처리 방침 / Solitaire Card Game Privacy Policy (0) | 2023.08.30 |
제비뽑기 앱은 어떠한 개인 정보도 수집하지 않습니다.
ChooseOne application does not collect any personal information.
직각 삼각형 대각선 길이 구하기 앱 개인 정보 처리 방침 / Triangle Application Privacy Policy (0) | 2023.08.30 |
---|---|
솔리테어 개인 정보 처리 방침 / Solitaire Card Game Privacy Policy (0) | 2023.08.30 |
[Android][Kotlin] Call 발신 하기 (0) | 2023.08.22 |
솔리테어 게임은 어떠한 개인 정보도 수집하지 않습니다.
Solitaire Card Game does not collect any personal information.
제비뽑기 앱 개인 정보 처리 방침 / ChooseOne Application Privacy Policy. (0) | 2023.08.30 |
---|---|
[Android][Kotlin] Call 발신 하기 (0) | 2023.08.22 |
[Android] Build error 대응 (0) | 2023.01.26 |
AndroidManifest.xml에 아래와 같이 권한을 추가 한다
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
<uses-feature android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
MainActivity안에 아래와 같이 버튼에 이벤트를 연결한다.
private fun init() {
val callButton : Button = findViewById(R.id.callButton)
callButton.setOnClickListener( View.OnClickListener { _ -> runCall() })
}
private fun runCall() {
val intent = Intent(Intent.ACTION_CALL, Uri.parse("tel:01234561492"))
val status = ActivityCompat.checkSelfPermission(this,
android.Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED
if (status) {
startActivity(intent)
} else {
Log.i("TAG", "Unable to launch call");
ActivityCompat.requestPermissions(this,
arrayOf<String>(android.Manifest.permission.CALL_PHONE), CALL_REQUEST)
}
}
아래와 같이 onRequestPermissionsReseult()를 오버라이딩 해주면, 권한 컨펌 즉시 콜이 걸리게 된다.
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
when (requestCode) {
CALL_REQUEST -> {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, "통화가 가능 합니다", Toast.LENGTH_LONG).show()
runCall()
} else {
Toast.makeText(this, "통화가 거절 되었습니다", Toast.LENGTH_LONG).show()
}
}
}
}
솔리테어 개인 정보 처리 방침 / Solitaire Card Game Privacy Policy (0) | 2023.08.30 |
---|---|
[Android] Build error 대응 (0) | 2023.01.26 |
안드로이드 지뢰 찾기 만들기 ( Android Minesweeper 만들기 ) (0) | 2021.01.03 |
An exception occurred applying plugin request [id: 'com.android.application']
> Failed to apply plugin 'com.android.internal.application'.
> Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
You can try some of the following options:
- changing the IDE settings.
- changing the JAVA_HOME environment variable.
- changing `org.gradle.java.home` in `gradle.properties`.
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Exception is:
org.gradle.api.plugins.InvalidPluginException: An exception occurred applying plugin request [id: 'com.android.application']
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.exceptionOccurred(DefaultPluginRequestApplicator.java:207)
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugin(DefaultPluginRequestApplicator.java:189)
//...
Caused by: com.android.builder.errors.EvalIssueException: Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
You can try some of the following options:
- changing the IDE settings.
- changing the JAVA_HOME environment variable.
- changing `org.gradle.java.home` in `gradle.properties`.
at com.android.builder.errors.IssueReporter.reportError(IssueReporter.kt:109)
at com.android.builder.errors.IssueReporter.reportError$default(IssueReporter.kt:105)
at com.android.builder.errors.IssueReporter.reportError(IssueReporter.kt)
아래와 같이 Setting에서 Gradle JDK를 Java 11로 변경해주면 된다.
[Android][Kotlin] Call 발신 하기 (0) | 2023.08.22 |
---|---|
안드로이드 지뢰 찾기 만들기 ( Android Minesweeper 만들기 ) (0) | 2021.01.03 |
[Termux] PC에서 Jupyter notebook 접속 하기 (0) | 2020.11.01 |
2021년 새해 연휴기간 만들어 본 지뢰 찾기 입니다.
1. 안드로이드 지뢰 찾기 소스 코드
github.com/chobocho/minesweeper
2. 동작화면
2.1 플레이 스토어 다운로드 링크
play.google.com/store/apps/details?id=com.chobocho.minesweeper
3. UML
4. 어떻게 만들었나
4.1 게임 요구 사항 정리하기
대부분 한번은 해보았을 지뢰찾기 규칙은 대부분 알기에 아래와 간단히 개발 바운더리를 정하였습니다.
1. 구현목표 2.2 게임의 구성 |
5. 설계 하기
5.1 UML
먼저 게임의 상태를 IDLE / PLAY / PAUSE / WIN / GAMEOVER 로 정의 하고,
이를 반영하여 UML를 그리면 위와 같습니다.
Play상태에서 지뢰를 모두 찾거나, 혹은 지뢰를 누른 경우,
Game State를 Win State 또는 Game over state 상태로 변경하기 위하여,
위와 같이 NotifyCallBack interface를 PLAY state가 가지도록 합니다.
package com.chobocho.minesweeper;
public interface MineSweeperNotifyCallback {
public void setWinState();
public void setGameOverState();
}
6. 구현 하기
6.1 Tile 클래스 구현
6.1.1 Tile 클래스
6.1.2 Test code 만들기
6.2 Board 클래스 수현
6.2.1 Board 클래스
6.2.2 Test code 만들기
[Android] Build error 대응 (0) | 2023.01.26 |
---|---|
[Termux] PC에서 Jupyter notebook 접속 하기 (0) | 2020.11.01 |
[Termux] SSH port forwarding (0) | 2020.10.28 |
jupyter notebook --no-browser --port=8889
ssh -L 8282:127.0.0.1:8889 192.168.35.195 -p 8022
http://127.0.0.1:8282/?token=86155c26eb90736c7f8c6d4db9ef8d567efbf42bd35d0ccd
안드로이드 지뢰 찾기 만들기 ( Android Minesweeper 만들기 ) (0) | 2021.01.03 |
---|---|
[Termux] SSH port forwarding (0) | 2020.10.28 |
[Termux] Web server 돌리기 (0) | 2020.10.27 |