繁体   English   中英

Android:获取Google云端硬盘活动的所有可用意向附加信息

[英]Android: obtaining the all available intent extras of a Google Drive activity

我们想知道是否有可能在应用程序的活动中获得所有可用的意向附加信息。 我们正在做一个Android应用程序,该应用程序明确意图上传文件,选择gmail帐户和Google Drive文件夹的Google Drive活动。

我们需要应用程序选择文件夹和帐户,而不是用户(用户可以选择它轻松地从可用的文件夹和帐户中选择,但我们不希望如此)。

我们已经看到可以为此添加意图的附加功能,但是与Google云端硬盘活动“交互”的唯一附加功能是附加的EXTRA_STREAM,它提供了我们要上传的文件流: http:/ /developer.android.com/reference/android/content/Intent.html#EXTRA_STREAM

我们还看到存在一个方法intent.getExtras(),它会返回一个地图(捆绑销售),其中包含一个意图的所有其他功能,但是之前有所有附加功能,而不是可用功能。

我们找不到与Google云端硬盘活动互动的更多标准附加功能,但可能是应用程序的源代码定义了附加功能以实现此目的(不幸的是,Google云端硬盘应用程序不是开源的)。

这是我们现在拥有的代码:

public class MainActivity extends Activity {

public final static String EXTRA_MESSAGE = "MESSAGE";


  private void error(String message){
    Intent intent = new Intent(this, DisplayMessageActivity.class);
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);
  }


public void sendMessage(View view){
    PackageManager pm = this.getPackageManager();
    Intent intent = new Intent(Intent.ACTION_SEND);

   intent.setType("text/plain");
   String rootPath = Environment.getExternalStorageDirectory().getPath();
   intent.putExtra(Intent.EXTRA_STREAM, Uri.parse(rootPath.concat("/rev.txt")));
   intent.putExtra(Intent.EXTRA_SUBJECT, "asunto");
   intent.putExtra(Intent.EXTRA_TEXT, "text");
   String[] emails = new String[4];
   emails[0] = "aa@gmail.com";
   intent.putExtra(Intent.EXTRA_EMAIL, emails);

    List<ResolveInfo> apps = pm.queryIntentActivities(intent, 0);

    System.out.println(apps.size());


    if (apps.size()>0) {

        ResolveInfo ri;
        for (Iterator<ResolveInfo> it = apps.iterator(); it.hasNext(); ) {
            ri = it.next();
            System.out.println(ri.toString());
        }
        ComponentName component = new ComponentName("com.google.android.apps.docs",
                "com.google.android.apps.docs.shareitem.UploadSharedItemActivity");

        intent.setComponent(component);

        try {
            startActivity(intent);
        }
        catch (ActivityNotFoundException e) {
            System.out.println("NON ATOPO O DRIVE");
            error("NON ATOPO O DRIVE");
        }
    }
    else {
        System.out.println("non hai aplicacions");
        error("non hai aplicacions");
    }

  }
}

我们想知道是否有可能在应用程序的活动中获得所有可用的意向附加信息。

阅读有关活动作者提供的文档。 如果没有此类文档,请不要启动活动。

如果希望能够以编程方式收集有关受支持的附加信息,则不可能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM