UPDATE :
가장 간단한 해결 방법은 다음과 같습니다
@Override
public boolean onShareTargetSelected(ShareActionProvider source, Intent intent) {
String shareTarget = intent.getComponent().getPackageName();
...
}
파일 또는 아무것도를 복사 할 필요가 없습니다.
복사 안드로이드 소스, 또는 ActionBarSherlock의 하나에서 일부 파일, 당신은 후자의 사용 일 경우 :
- ActivityChooserModel.java
- ActivityChooserView.java
- ShareActionProvider.java
을
앱의 원본 파일이 아닌이 파일을 참조해야합니다.
if (mActivityChoserModelPolicy != null) {
ResolveInfo info = getActivity(index);
choiceIntent.putExtra("user_selected_activity", (info.activityInfo != null) ? info.activityInfo.packageName : info.serviceInfo.packageName);
final boolean handled = mActivityChoserModelPolicy.onChooseActivity(this, choiceIntent);
if (handled)
return null;
}
을하고는 의도로 선택한 활동의 패키지 이름을 저장합니다 :
ActivityChooserModel.java
에서이 문제를 수정합니다. 그런 다음 처리기에서 읽을 수 있습니다. @Override
public boolean onShareTargetSelected(ShareActionProvider source, Intent intent) {
String shareTarget = intent.getStringExtra("user_selected_activity");
...
}
선택한 활동에 따라 다르게 처리 할 항목을 결정하십시오.
고마워요. ..i는 이것을 시도 할 것입니다 :-) –
그러나 Android 개발자는 의도 수정은 허용되지 않으며 후자에 대한 변경 사항은 무시됩니다. 참조 용 http://developer.android.com/reference/android/widget/ShareActionProvider.OnShareTargetSelectedListener.html#onShareTargetSelected%28android.widget.ShareActionProvider,%20android.content.Intent%29 – sandeepmaaram
이러한 경우 일반적으로 인 텐트 자체를 수정하고, 엑스트라를 다르게 설정하려는 경우 (예 : HTML을 처리하는 응용 프로그램에 HTML을 보내지 않는 사용자에게 텍스트 보내기). –