Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 안드로이드 스튜디오
- 플레이스토어 앱 게시 문제
- 앱개발
- 안드로이드 api
- 플레이 콘솔 프로덕션
- 안드로이드 http
- Callback
- 비동기
- Retrofit
- 공유 기능
- 달력 만들기
- 안드로이드스튜디오
- Exposed Drop-Down Menu
- urlconnection
- android studio
- android api
- Bottom sheet
- Kotlin
- 앱 출시
- 레트로핏
- Dialog
Archives
- Today
- Total
Strong 감자의 공부
텍스트 외부공유 기능 -Kotlin 본문
쓰게 된 계기 : 태그별 음악 외부공유 기능이 필요해서
오늘은 간단히 외부공유기능을 추가했다. 여기서 더 추가할 것이 있지만 후에 업데이트 할 예정입니당~
(후에 더 추가할 기능 : 태그에 따른 음악 공유(+공유된 모습을 이미지? 텍스트? 혼합? 구성을
어떻게 할지 고민 중) -> 외부 공유는 일단 여기서 멈춥니당 ( 내부음악공유 먼저 구현할려합니다.)
일단 오늘은 음악 타이틀 외부공유 코드 작성했습니다.
스타또~
▪️ 수정한 파일과 설명
- activity_play_music.xml : 공유 아이콘 넣는xml
- PlayMusicActivity.kt : 공유동작구현 kt
- share.xml : 공유 아이콘 vector
▪️ activity_play_music.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:gravity="center"
tools:context=".PlayMusicActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_gravity="top|center"
android:orientation="horizontal">
<ImageButton
android:id="@+id/backBtnPA"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center_vertical"
android:background="?attr/selectableItemBackground"
android:padding="10dp"
android:src="@drawable/ic_baseline_arrow_back_ios_new_24"
app:tint="@color/black"
android:contentDescription="Back"/>
// 공유 아이콘 이미지버튼 코드
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/sharebtn"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/share" // vector 공유이미지
android:layout_gravity="center"
android:layout_marginLeft="290dp"
android:padding="10dp"/>
</LinearLayout>
</LinearLayout>
▪️ PlayMusicActivity.kt
import android.app.Dialog
import android.content.Intent
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.os.*
import android.util.Log
import android.view.Gravity
import android.view.ViewGroup
import android.view.Window
import android.view.WindowManager.LayoutParams.*
import android.widget.*
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.AppCompatButton
import androidx.appcompat.widget.AppCompatImageButton
import com.cookandroid.myapplication.databinding.ActivityPlayMusicBinding
import com.google.android.material.bottomsheet.BottomSheetDialog
class PlayMusicActivity : AppCompatActivity() {
private lateinit var binding:ActivityPlayMusicBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityPlayMusicBinding.inflate(layoutInflater)
setContentView(binding.root)
// 공유하기
sharebtn()
}
private fun sharebtn(){
val title = binding.songNamePA
binding.sharebtn.setOnClickListener{
val shareIntent = Intent().apply{
action= Intent.ACTION_SEND
putExtra(Intent.EXTRA_TITLE,"음악 공유") // 공유시 제목
// 노래제목과 앱 공유
putExtra(Intent.EXTRA_TEXT,"노래 제목 : "+ title.getText()+ "\n00에서 들어보세요\n"+"https://play.google.com/store/apps/details?id=패키지명")
type="text/plain"
}
// startActivity(shareIntent) // 결과 : 하단 사진1
startActivity(Intent.createChooser(shareIntent,null)) // 결과 : 하단 사진2
}
}
}
- 명시 암시 intent
이번에 암시 인텐트를 사용하였는데 이에 대해 간단히 잘 설명해주셨다. ->https://korean-otter.tistory.com/76
• 명시적 인텐트는 정확한 대상에게 요청한다.
• 암시적 인텐트는 작업을 할 수 있는 대상 모두에게 요청한다. (링크 클릭시, 링크를 열 수 있는 앱이 많은 경우. 크롬, 웨일, 인스타 등에게 요청)
ex. 갤러리에서 사진을 골라 공유를 한다면 카톡, 문자, 이메일 등에서 선택하는 것처럼 대상이 여럿 있을 수 있는 것들.
- createChooser() 사용여부 + 설명 참고 https://developer.android.com/reference/android/content/Intent#createChooser(android.content.Intent,%20java.lang.CharSequence)
그냥 startActivity(shareIntent)하면 사진1처럼 아무앱이나 나옵니다. 이에 대해 상세히 설정하는 글도 있더군요
근데 사진2처럼 나오는게 목표라 하단 코드 사용했습니다.
startActivity(Intent.createChooser(shareIntent,null))
▪️ share.xml
drawable->(마우스 오른쪽) new ->vector asset -> 원하는 이미지 선택-> 자동 완성됨당
저는 이걸로 했슴당(무난)
참고한 사이트 : https://developer.android.com/training/sharing/send?hl=ko
'앱개발 > 졸업작품 with Kotlin' 카테고리의 다른 글
RecyclerView01 -Kotlin (0) | 2023.03.31 |
---|---|
Volley이용해 JSON 날씨 받아오기 -Kotlin (0) | 2023.03.27 |
하단 Dialog( Bottomsheet) 만들기 -Kotlin (0) | 2023.03.24 |
Exposed Drop-Down Menu 만들기 - Kotlin (0) | 2023.03.17 |