본문 바로가기

안드로이드

(78)
안드로이드 문자 , 카카오톡 알림 캐치 1.메니페스트에 서비스 선언 2. 메인에서 시스템 권한 요청 if (!permissionGrantred()) { Intent gt= new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS"); startActivity(gt); } private boolean permissionGrantred() { Set sets = NotificationManagerCompat.getEnabledListenerPackages(this); if (sets != null && sets.contains(getPackageName())) { return true; } else { return false; } } 3.서비스 구현 com.android.messagi..
Android Java 갤러리 다중이미지 가져와서 연속크랍(Crop) implementation 'com.github.yalantis:ucrop:2.2.5' 1.갤러리 호출 private void getImageUri() { Intent intent = new Intent(Intent.ACTION_PICK); intent.setType(MediaStore.Images.Media.CONTENT_TYPE); intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); intent.setData(MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, 2222); } 2.사진 선택후 onActivityResult에서 crop 라이브러리 호출 List imageUri..
PDF 파일 불러와서 Sign하기(JAVA) 1.PDF 파일을 Bitmap 으로 변경 Bitmap pdf = pdfToBitmap(context, pdfFile, 0); public static Bitmap pdfToBitmap(Context context, File pdfFile, int pageNumber) { try { ParcelFileDescriptor fileDescriptor = ParcelFileDescriptor.open(pdfFile, ParcelFileDescriptor.MODE_READ_WRITE); PdfRenderer pdfRenderer = new PdfRenderer(fileDescriptor); PdfRenderer.Page page = pdfRenderer.openPage(pageNumber); int rendere..
이미지 공유시 Uri 얻기 Bitmap bitmap = decodeFile(file); Uri uri = shareFile(bitmap); share(uri); public Uri shareFile(Bitmap bitmap) { Date now = new Date(); String fileName = "android_share_" + now + ".jpg"; Uri imageUri=null; android.text.format.DateFormat.format("yyyy-MM-dd_hh:mm:ss", now); try { int quality = 100; OutputStream fos; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { ContentResolver resolver = g..
android 10 이상 스크린 캡쳐 후 파일저장(screen capture view java) public static void takeScreenshot(View v) { Date now = new Date(); android.text.format.DateFormat.format("yyyy-MM-dd_hh:mm:ss", now); try { String fileName = "android_scshot_" + now + ".jpg"; View v1 = v; v1.setDrawingCacheEnabled(true); Bitmap bitmap = Bitmap.createBitmap(v1.getDrawingCache()); v1.setDrawingCacheEnabled(false); int quality = 100; OutputStream fos; if (Build.VERSION.SDK_INT >= B..
rxjava 파일 다운로드 AppApi.java import retrofit2.http.Streaming; import retrofit2.http.GET; import okhttp3.ResponseBody; public interface AppApi { @Streaming @GET Observable downloadFile(@Url String fileUrl); } PDFViewerFragment.java import java.io.File; import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; import io.reactivex.rxjava3.core.Observable; import io.reactivex.rxjava3.core.ObservableEmitter; ..
코틀린 apply, run, let apply : 수신객체의 내용 변경해서 리턴 Ex) 텍스트뷰 색상,글자,크기등 변경 val tv = TextView(this.context).apply { text = items[i].training textSize = 30.0f setTextColor(Color.WHITE) setPadding(0, 4, 0, 4) setOnClickListener { viewModel.branchIdClick(items[i]) Toast.makeText(this@LoginBottomFragment.context, "$text 선택", Toast.LENGTH_SHORT).show() dismiss() } } run : 수신객체 리턴하지 하고 특정한 동작 후 , 마지막 블록 리턴 val man = Man(name = "남..
자바 특정일에 다음날 이전날 yyyyMMdd 로 입력 받음 private String nextDate(String date) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); Calendar c = Calendar.getInstance(); Date d = sdf.parse(date); c.setTime(d); c.add(Calendar.DATE,1); String nextDay = sdf.format(c.getTime()); return nextDay; } private String preDate(String date) throws ParseException { SimpleDateFormat sdf = new SimpleDateForma..