2013-02-26 4 views
0

내가하는 일의 예 : Pocket에서 Evernote로 기사를 공유 할 때 Pocket이 텍스트 서식을 지정하고 전체 기사를 Evernote로 보냅니다. 반면에 기사를 공유 할 때 내 응용 프로그램, 나는 단순히 URL을받습니다. 공유하기 전에 "처리 중"대화 상자가 있으므로 Pocket 측에서 코드가 실행되고 있다는 것을 알고 있습니다.Android의 공유 인 텐트를 통해 특정 콘텐츠를 수신합니다.

내 질문은 : 포켓은 에버 노트와 함께 공유하는 것을 알고 에버 노트 용으로 출력을 포맷하거나, 에버 노트는 어떻게 든 단지 URL이 아닌, 따라서 전체 기사를 공유 할 수있는 프롬프트 포켓을 텍스트 editting에 응용 프로그램으로 등록 않습니다합니까?

후자의 경우 어떻게 수행됩니까? text/plain 이외의 MIME 형식을 수신하도록 앱을 등록해야합니까? 다음은 현재 텍스트를 수신하는 데 사용하는 코드의 일부입니다 :

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    rcvIntent = getIntent(); 
    String rcvAction = rcvIntent.getAction(); 
    String rcvType = rcvIntent.getType(); 
    if (Intent.ACTION_SEND.equals(rcvAction) && "text/plain".equals(rcvType)) 
     displaySentText(rcvIntent); 
} 
private void displaySentText (Intent rcvIntent) { 
    String sharedText = rcvIntent.getStringExtra(Intent.EXTRA_TEXT); 
    if (sharedText == null) return; 
    if (sharedText.startsWith("http://")) { 
     ConnectivityManager connMgr = (ConnectivityManager) getSystemService (Context.CONNECTIVITY_SERVICE); 
     NetworkInfo networkInfo = connMgr.getActiveNetworkInfo(); 
     if (networkInfo != null && networkInfo.isConnected()) { 
      new DownloadWebpageText().execute(sharedText); 

미리 감사드립니다!

편집 :

디버거는 많은 정보를 제공하지 않습니다.

02-27 16:36:50.005: I/ActivityManager(2257): START u0 {act=android.intent.action.SEND typ=text/plain flg=0x80001 cmp=com.evernote/.note.composer.NewNoteAloneActivity (has clip) (has extras)} from pid 31094 

을 그리고 난 내 응용 프로그램을 공유 할 때, 나는 매우 비슷한 메시지를 얻을 : 나는 에버 노트를 공유 할 때, 그것은 보여줍니다

02-27 16:37:39.700: I/ActivityManager(2257): START u0 {act=android.intent.action.SEND typ=text/plain flg=0x80001 cmp=st.olm.readmemberalpha/.WebText (has clip) (has extras)} from pid 31094 

그들은 모두 텍스트/일반하지만 내용이 다르다을 . 위의 (has clip) 클립의 내용도 확인했지만 내용은 추가 내용과 같습니다.

답변

0

주머니 블로그를 읽은 후 Pocket은 사실 Evernote의 기사 텍스트 형식을 실제로 지정하는 것으로 보입니다. 공유 intent 클립은 ClipData class에서 가져온 것으로, 단순히 여분의 사본이며 API 11 이후로 대신 사용됩니다.

적어도 공유 의도를 통해, 그리고 내 지식에 따라 다른 앱이 특정 데이터 (유형)를 제공하도록 강요합니다.

관련 문제