내가하는 일의 예 : 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)
클립의 내용도 확인했지만 내용은 추가 내용과 같습니다.