在Android上的Twitter上分享图像

时间:2016-06-20 10:19:09

标签: android twitter

我基本上有这个测试代码,我尝试过不同的变体。在此示例中,我已经检查了package_name(" com.twitter.android ")是否存在并已安装:

  if (package_name.equals("") == false) {
    Intent intentCanLaunch = getPackageManager().getLaunchIntentForPackage(package_name);
    if (intentCanLaunch != null) {
      //--
      //
      //--
      if (v == buttonShare) {
        //--
        Intent shareIntent = new Intent();
        shareIntent.setPackage(package_name);
        //--
        // shareIntent.setClassName(package_name, "com.twitter.android.PostActivity"); // not working either
        //--
        shareIntent.setAction(Intent.ACTION_SEND);
        shareIntent.setType("image/jpeg");
        shareIntent.putExtra(Intent.EXTRA_STREAM, contentUri_internal_fileprovider);
        //--
        shareIntent.putExtra(Intent.EXTRA_TEXT,"ekstra_text");
        shareIntent.putExtra(Intent.EXTRA_TITLE,"ekstra_title");
        shareIntent.putExtra(Intent.EXTRA_SUBJECT,"ekstra_subject");
        //--
        shareIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
        shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        //--
        startActivity(shareIntent);            
      }
    }

使用相同的代码为Instagram工作(虽然不能传递文本),但对于Twitter我得到错误" 无法执行非公开方法的android:onClick "在Android代码中

@Override
public void onClick(@NonNull View v) {
    if (mMethod == null) {
        mMethod = resolveMethod(mHostView.getContext(), mMethodName);
    }

    try {
        mMethod.invoke(mHostView.getContext(), v);
    } catch (IllegalAccessException e) {
        throw new IllegalStateException(
                "Could not execute non-public method for android:onClick", e);
    } catch (InvocationTargetException e) {
        throw new IllegalStateException(
                "Could not execute method for android:onClick", e);
    }
}

请注意,所有他的代码对于Twitter和Instagram都是一样的,我只是在交换" com.instagram.android "使用" com.twitter.android "

0 个答案:

没有答案