2016-09-05 3 views
0

인터넷에서 비슷한 것을 찾았지만 시도 할 수 없었습니다. 제가 원했던 것은 구체적으로 버튼을 다른 응용 프로그램에서 만든 텍스트로 붙여 넣는 기능입니다. 따라서 "Google 크롬"앱의 일부 텍스트를 복사하고 길게 탭하여 복사하십시오. 그런 다음이 응용 프로그램을 열고 버튼을 누르면 클립 보드에서 텍스트를 가져 와서 TextView에 붙여 넣습니다. 필자가 보았던 모든 예제는 클립 보드 관리자가 앱 내에서 정보를 저장하는 객체로 보여주기 때문에 이것이 불가능하다는 것을 알고 있습니다. https://github.com/heruoxin/Clip-Stack다른 앱에서 버튼을 사용하여 클립 보드에서 텍스트 붙여 넣기 (Android)

아이디어는 당신의 경우에 (부동 실행하면서 자신의 내부 데이터베이스에서 클립 보드 항목을 추적한다는 것입니다 :

답변

1

아니요, ClipboardManager은 시스템 전체의 클립 보드에 대한 액세스를 제공하는 시스템 서비스입니다.

많은 예제에서 클립 보드에 복사 및 붙여 넣기가 모두 표시 될 수있는 이유 중 일부가 자체적으로 포함되어 있습니다.

그래서, 당신은 getSystemService()에서 ClipboardManagergetPrimaryClip()를 통해 현재 내용을 얻을, 당신이 맞는 볼로 ClipData을 사용하여 얻을.

예를 들어 this sample project에는 drag/drop/의 두 가지 앱이 포함되어 있습니다. 주로 Android 7.0에서 교차 앱 드래그 앤 드롭 작업을 설명하기위한 것입니다. 그러나, drop/ 나는 그것이 Uri이있는 경우, 클립 보드에 무엇이든지 잡아 (관련 키보드 바로 가기)에 "붙여 넣기"작업 표시 줄의 항목을 지원, 사용 : 더 코드는 다음에 없다

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
    if (item.getItemId()==R.id.paste) { 
     boolean handled=false; 

     ClipData clip= 
     getSystemService(ClipboardManager.class) 
      .getPrimaryClip(); 

     if (clip!=null) { 
     ClipData.Item clipItem=clip.getItemAt(0); 

     if (clipItem!=null) { 
      imageUri=clipItem.getUri(); 

      if (imageUri!=null) { 
      showThumbnail(); 
      handled=true; 
      } 
     } 
     } 

     if (!handled) { 
     Toast 
      .makeText(this, "Could not paste an image!", Toast.LENGTH_LONG) 
      .show(); 
     } 

     return(handled); 
    } 

    return(super.onOptionsItemSelected(item)); 
    } 

응용 프로그램은 클립 보드에 물건을 넣으려고하는데, 관련 drag/ 응용 프로그램에 해당 코드가 있습니다.

0

나는 당신이 달성하고자하는 것은이 오픈 소스 라이브러리에서 사용할 수 있습니다 생각 버튼) 서비스를 누른 다음 붙여 넣습니다.

+1

OP는 응용 프로그램 간 복사 및 붙여 넣기를 구체적으로 찾습니다. – CommonsWare

+0

필자는 OP가 클립 보드 내용을 추적하는 글로벌 복사 및 붙여 넣기 솔루션을 원한다고 생각했습니다. –

관련 문제