투케이2K

191. (TWOK/ERROR) [Android] 클립보드 (clipboardManager) 데이터 저장 후 hasPrimaryClip 저장된 값 체크 시 리턴 false 이슈 본문

투케이2K 에러관리

191. (TWOK/ERROR) [Android] 클립보드 (clipboardManager) 데이터 저장 후 hasPrimaryClip 저장된 값 체크 시 리턴 false 이슈

투케이2K 2023. 11. 15. 20:47

[환경 설정 및 설명]

프로그램 : AndroidStudio

설 명 : [Android] 클립보드 (clipboardManager) 데이터 저장 후 hasPrimaryClip 저장된 값 체크 시 리턴 false 이슈

 

[에러 원인]

1. clipboardManager 클립보드 매니저 사용해 setPrimaryClip 정상적으로 데이터를 정상 했음에도, 안드로이드 Os 기능 상에 데이터를 저장하기 때문에 즉시, hasPrimaryClip 사용해 저장 여부 체크 시 리턴 false 로 반환되는 이슈

 

[해결 방법]

1. clipboardManager setPrimaryClip 클립보드 데이터 저장 후 new Handler(Looper.getMainLooper()).postDelayed 를 사용해 일정시간 딜레이 (ex: 500 밀리세컨드) 이후 hasPrimaryClip 사용해 데이터 저장 여부 체크 수행

 

[클립보드 데이터 저장 및 확인 코드 예시]

 

------------------------------------------------------------------
[클립보드 데이터 저장]
------------------------------------------------------------------
ClipboardManager clipboardManager = (ClipboardManager) mContext.getSystemService(CLIPBOARD_SERVICE);
ClipData clipData = ClipData.newPlainText("copy", data); //TODO 클립보드에 copy 라는 이름표로 데이터를 복사하여 저장
clipboardManager.setPrimaryClip(clipData);
------------------------------------------------------------------




------------------------------------------------------------------
[클립보드 데이터 호출]
------------------------------------------------------------------
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
	@Override
	public void run() {

		ClipboardManager clipboardManager = (ClipboardManager) mContext.getSystemService(CLIPBOARD_SERVICE);

		if (clipboardManager.hasPrimaryClip() == true){ // [저장된 데이터가 있는 경우]
			ClipDescription description = clipboardManager.getPrimaryClipDescription();
			ClipData data = clipboardManager.getPrimaryClip();

			// [저장된 클립보드 데이터가 널이 아니고, 타입이 텍스트 인 경우만 확인]
			if (data != null && description != null && description.hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)){
				String value = data.getItemAt(0).getText().toString();
			}
		}

	}
}, 500);
------------------------------------------------------------------

 

반응형
Comments