<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="testing_v1.html">Cloud Testing API</a> . <a href="testing_v1.applicationDetailService.html">applicationDetailService</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#getApkDetails">getApkDetails(body, x__xgafv=None)</a></code></p>
<p class="firstline">Gets the details of an Android application APK.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="getApkDetails">getApkDetails(body, x__xgafv=None)</code>
  <pre>Gets the details of an Android application APK.

Args:
  body: object, The request body. (required)
    The object takes the form of:

{ # A reference to a file, used for user inputs.
    "gcsPath": "A String", # A path to a file in Google Cloud Storage.
        # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response containing the details of the specified Android application APK.
    "apkDetail": { # Android application details based on application manifest and apk archive # Details of the Android APK.
        # contents.
      "apkManifest": { # An Android app manifest. See
          # http://developer.android.com/guide/topics/manifest/manifest-intro.html
        "packageName": "A String", # Full Java-style package name for this application, e.g.
            # "com.example.foo".
        "maxSdkVersion": 42, # Maximum API level on which the application is designed to run.
        "minSdkVersion": 42, # Minimum API level required for the application to run.
        "targetSdkVersion": 42, # Specifies the API Level on which the application is designed to run.
        "applicationLabel": "A String", # User-readable name for the application.
        "intentFilters": [
          { # The <intent-filter> section of an <activity> tag.
              # https://developer.android.com/guide/topics/manifest/intent-filter-element.html
            "mimeType": "A String", # The android:mimeType value of the <data> tag.
            "actionNames": [ # The android:name value of the <action> tag.
              "A String",
            ],
            "categoryNames": [ # The android:name value of the <category> tag.
              "A String",
            ],
          },
        ],
      },
    },
  }</pre>
</div>

</body></html>