Keine Ergebnisse gefunden

Probeer een andere of meer specifieke zoekopdracht
Developer Konsole
Vielen Dank für deinen Besuch. Diese Seite ist nur in Englisch verfügbar.
Amazon Developer Blogs

Amazon Developer Blogs

Showing posts tagged with Weblogs

January 31, 2012

Amazon Mobile App Distribution Program

Amazon is excited to announce an update to reports within the Amazon Appstore Developer Portal. Reports provide developers with important historical and trend data for sales and earnings. Improving the developer interface and strengthening service capability were two of the most important factors we focused on for this update.

During the past two months, we beta tested the update with more than 500 developers. Many of these developers provided valuable feedback that we incorporated into the final design. 

Starting today, we will begin rolling out this update to all developers on the Amazon Appstore Developer Portal.  You will notice the following changes:

  • Infrastructure updates to enhance scalability and speed
  • Enhanced sales and units reporting interface and navigation
  • Streamlined earnings report with at-a-glance views of your monthly earnings statements
  • Expanded selection of downloadable CSV reports

We encourage developers to explore the new reports and provide feedback via the Contact Us link on the Amazon Appstore Developer Portal homepage or by clicking on the Submit Feedback flag on your Reports page.

January 06, 2012

Amazon Mobile App Distribution Program

Interested in learning more about selling your apps on Amazon.com and Kindle Fire? Aaron Rubenson, director of the Amazon Appstore for Android, will offer insight at CES into how developers can get in front of millions of Amazon customers  – and make money – when they sell their apps at Amazon.com.

Learn about submitting apps for Kindle Fire,  which topped Amazon.com’s “Best of 2011” list as the best-selling, most wished for, and most gifted product as determined by Amazon.com customers. Throughout December, customers purchased well over 1 million Kindle devices per week. Also on the agenda is information about programs such as in-app purchasing and Test Drive, which lets customers try an app on their computers before they buy.

  AaronRubenson

Rubenson and other Amazon Appstore representatives will be available for informal discussions after the presentation.

Who:  Aaron Rubenson, Director, Amazon Appstore for Android

What:  “Selling Apps on Amazon.com and Kindle Fire”

Where:  The Venetian Meeting Rooms, Veronese 2404

When:  Friday, January 13, 9 a.m. – no R.S.V.P. needed

December 21, 2011

lisamar

One great benefit to having your app on the Amazon Appstore for Android is cross-promotion. Cross-promotion is a form of marketing where customers of one product are targeted with promotion of a related product. Amazon.com has millions of customers, and those customers purchase tens of thousands of products every day. With so many great products (and customers), we have the unique ability to employ cross-promotion, even across product categories.

So, what do you need to do? Nothing! By default, apps that are published in the Amazon Appstore qualify to get picked up in the cross-merchandising widgets and promotions.

In the below image, you’ll see the product detail page for an Android app. In the Customers Who Bought Related Items Also Bought widget right below the general app information, you see that our site is automatically recommending a USB cable to the customer who is interested in this app—simply because other customers purchased similar items.

Calengoo-other-items

 

Similarly, in the following image, you can see the Customers Who Bought This Item Also Bought widget. This form of cross-promotion allows customers to make informed decisions about which apps they purchase while also showing them additional apps that might interest them.

Customers_Who_Bought_This_Item_Also_Bought

Another Amazon widget that can benefit your app is the What Other Items Do Customers Buy After Viewing This Item? widget. Below, the widget is appearing on the product detail page for a tablet device and is advertising an app that was purchased by a customer who also purchased the tablet.

Automated Merchandisting slot promotes recent FAD_edit

All of the above-mentioned widgets are automated, but we also have the ability to manually cross-promote your app. In the following image, note that on the product detail page for a hardcover copy of this Dr. Seuss book, we’ve added a recommendation for the related Android app.

Cross-promotion screenshot

Cross-promotion means customers can discover your app in a number of ways—not just by searching on the title or category. And over time, your app sales have the potential to increase, purely based on this cross-promotion. That’s never a bad thing, right?

December 16, 2011

gdierkes

Overview

This article discusses how mobile apps can use Amazon Web Services to communicate with users via e-mail, short message service (SMS), and other communication channels. The sample code presented here uses Amazon Simple Notification Service and Amazon Simple Queue Service. Amazon Simple Notification Service (Amazon SNS) makes it easy to set up, manage, and send notifications from mobile apps and have these notifications delivered immediately to any users who have chosen to subscribe to them. Amazon SNS provides a highly scalable, flexible, and cost-effective method to implement such notification systems.

Amazon Simple Queue Service (Amazon SQS), also discussed here, offers a reliable, highly scalable, hosted queue for storing messages. The types of messages supported by Amazon SQS include—but aren't limited to—the notification messages sent from Amazon SNS.

Together, Amazon SNS and Amazon SQS enable developers to create apps that can message large numbers of users in multiple formats quickly and easily.

The sample app described here demostrates how mobile apps can message their users through Amazon SNS and Amazon SQS. The sample demonstrates how to use Amazon SNS to create a topic, subscribe users to that topic, and publish notifications to the topic. Subscribers to the topic can receive their notifications via e-mail, SMS, or an Amazon SQS queue. Amazon SQS and Amazon SNS can also be used to create other types of communication systems not shown here.

This article shows sample code but the complete sample code and project files are included in the AWS SDK for Android. A link to the SDK is available at the end of this article.

To use the AWS SDK for Android, you will need AWS credentials, that is, an Access Key ID and Secret Access Key. If you haven't already signed up for Amazon Web Services (AWS), you will need to do that first to get your credentials. You can sign up for AWS here. After you sign up, you can retrieve your credentials at this page.

Creating Amazon SQS and Amazon SNS Clients

Making requests to Amazon SNS and Amazon SQS requires creating a client for each service. The code below shows how to create a client:

AWSCredentials credentials =      new BasicAWSCredentials( Constants.ACCESS_KEY_ID, Constants.SECRET_KEY );		AmazonSNSClient snsClient = new AmazonSNSClient( credentials );AmazonSQSClient sqsClient = new AmazonSQSClient( credentials );

Topic Creation

Amazon SNS uses topics to route notifications from publishers to subscribers. The term publisher refers to an app that sends notifications; the term subscriber refers to an entity, such as a user, that receives notifications. Topics provide a junction point for publishers and subscribers to communicate with each other. Once a topic is created, subscribers can be added to the topic and receive notifications/messages. The DisplayName attribute is added to a topic to allow notifications to be sent via SMS.

CreateTopicRequest ctr = new CreateTopicRequest( Constants.TOPIC_NAME );CreateTopicResult result = snsClient.createTopic( ctr );	        SetTopicAttributesRequest tar      = new SetTopicAttributesRequest( result.getTopicArn(), "DisplayName", "MessageBoard" );this.snsClient.setTopicAttributes( tar );  

Subscribing to Topics

In order for notifications sent to a topic to be received, you have to subscribe an endpoint to that topic. The endpoint corresponds to a recipient. An endpoint is an e-mail address, SMS number, web server, or Amazon SQS queue. If you are using an Amazon SQS queue, it needs to be configured to receive notification messages from Amazon SNS. Once you subscribe an endpoint to a topic and the subscription is confirmed, the endpoint will receive all messages published to that topic.

SubscribeRequest sr = new SubscribeRequest( this.topicARN, "email", email );this.snsClient.subscribe( sr );

Listing a Topic's Subscribers

Listing the subscribers for a topic provides the endpoint and corresponding protocol for each subscriber who receives notification via that topic. The protocol for an endpoint depends on the type of endpoint. For example, endpoints that are e-mail addresses have a protocol of SMTP.

ListSubscriptionsByTopicRequest ls = new ListSubscriptionsByTopicRequest( this.topicARN );ListSubscriptionsByTopicResult response = this.snsClient.listSubscriptionsByTopic( ls );return response.getSubscriptions();

Publishing Notifications

Publishers send notifications to topics. Once a new notification is published, Amazon SNS attempts to deliver that notification to every endpoint that is subscribed to the topic.

PublishRequest pr = new PublishRequest( this.topicARN, message );this.snsClient.publish( pr );	

Unsubscribing from Topics

Unsubscribing removes the endpoint from the topic and stops notifications from being received.

UnsubscribeRequest unsubscribeRequest = new UnsubscribeRequest( subscriptionArn );this.snsClient.unsubscribe( unsubscribeRequest );

Creating a Queue

The first task in using Amazon SQS is to create a queue. Once a queue is created it can be subscribed as an endpoint to an Amazon SNS topic.

CreateQueueRequest cqr = new CreateQueueRequest( Constants.QUEUE_NAME );CreateQueueResult result = this.sqsClient.createQueue( cqr );return result.getQueueUrl();

Subscribing a Queue to a Topic

Here's how to subscribe a queue to a topic. However, for the queue to receive messages, you must also add a policy to the queue. See below.

String queueArn = this.createMessageQueue();		SubscribeRequest request = new SubscribeRequest();request.withEndpoint( queueArn ).withProtocol( "sqs" ).withTopicArn( this.topicARN );		this.snsClient.subscribe( request );

Adding a policy to a Queue

In order for a queue to receive messages from a topic, the queue must have a policy object that specifies that the topic has sqs:SendMessage permission for the queue. For further details see the Amazon SNS FAQ. For more information about queue policies see the Amazon SQS documentation. Once the policy object is created it can be attached to the queue as follows:

HashMap attributes = new HashMap();attributes.put("Policy", generateSqsPolicyForTopic( queueArn, this.topicARN ) );this.sqsClient.setQueueAttributes(new SetQueueAttributesRequest( queueUrl, attributes ) );

Receiving Messages from a Queue

Now that a message is in the queue, you can receive it, which requires getting it from the queue. When requesting to get a message from the queue, you can't specify which message to get. Instead, you simply specify the maximum number of messages you want to get (up to 10), and Amazon SQS returns up to that maximum number. Because Amazon SQS is a distributed system and the particular queue we're working with here has very few messages in it, the response to the receive request might be empty. Therefore, you should rerun the sample until you get the message. You should design your own app so that it continues to poll the queue until it gets one or more messages.

ReceiveMessageRequest rmr = new ReceiveMessageRequest( this.queueUrl );rmr.setMaxNumberOfMessages( 10 );rmr.setVisibilityTimeout( 30 );ReceiveMessageResult result = this.sqsClient.receiveMessage( rmr );

Delete Messages from a Queue

Amazon SQS doesn't automatically delete a message after returning it to the app. By default, it keeps the message to protect against the case where the receiving app fails or loses its connection. In these cases, a different app—or perhaps a new instance of the same app— might attempt to get the message.

To delete the message, you must send a separate request. You specify which message to delete by providing the receipt handle that Amazon SQS returned when you received the message. You can delete only one message per call. Deleting the message acknowledges that you've successfully received and processed it.

DeleteMessageRequest request      = new DeleteMessageRequest( this.queueUrl, message.getReceiptHandle() );this.sqsClient.deleteMessage( request );

References

A sample app that includes this code is provided with the SDK. The download link can be found on the following page:

For more information about using AWS credentials with mobile apps see the following article:

Questions?

Please feel free to ask questions or provide comments in the Mobile Development Forum.

November 30, 2011

gdierkes

Screen shot 2011-11-29 at 10.40.45 AM

This article highlights the benefits of connecting mobile devices to the cloud while also presenting an Amazon SimpleDB use case. Amazon SimpleDB is a highly available, flexible, and scalable non-relational data store that offloads the work of database administration. The app described here demonstrates how to store a high score list or leader board in SimpleDB. The app enables the user to view the high scores sorted by name or score, add and remove scores, and more. This article shows sample code for the Android platform. The complete sample code and project files are included in the AWS SDK for Android. A link to the SDK is available at the end of this article.

To use the AWS SDK for Android, you will need your AWS credentials, that is, your Access Key ID and Secret Access Key. If you haven't already signed up for Amazon Web Services (AWS), you will need to do that first to get your AWS credentials. You can sign up for AWS here. After you have signed up, you can retrieve your credentials at this page.

Overview

SimpleDB stores data in domains. Each domain is a collection of items and each item is a collection of attribute/value pairs. For the app, we create a single domain to store our high score list. Each item in the domain represents an individual player. The items will have two attributes, the player's name and their score. Items also have a unique identifier called the item name that, in this case, is equal to the player's name. Storing the player's name and score as item attributes enables us to sort the items by name or score.

The app demonstrates how to add and remove individual players, sort the scores by player name or score, and retrieve a single item from the domain. The app also demonstrates how to create and delete SimpleDB domains.

Creating a SimpleDB Client

Making requests to SimpleDB requires a client. Creating a SimpleDB client for Android is shown below.

AWSCredentials credentials = new BasicAWSCredentials(ACCESS_KEY_ID, SECRET_KEY);AmazonSimpleDBClient sdbClient = new AmazonSimpleDBClient( credentials);

High Score List Creation (Domain Creation)

Individual player scores are stored as items in a SimpleDB domain. This requires that we create the domain first. Using the appropriate client that we created above, we can use the following code to create the domain.

CreateDomainRequest cdr = new CreateDomainRequest( HIGH_SCORES_DOMAIN );sdbClient.createDomain( cdr );

Add Score (Item Creation)

An item is a collection of attribute/value pairs. For our items, we create two attributes, one for the player's name and one for the player's score. These are added to a request along with an item name in order to create the item. Because a player appears at most only once on the high score list, we use the player's name to uniquely identify each item. All data in SimpleDB are stored as strings, therefore numbers must be zero padded if you want to sort them properly. The AWS SDK for Android includes a utility to pad numbers, used below.

String paddedScore = SimpleDBUtils.encodeZeroPadding( score, 10 );		ReplaceableAttribute playerAttribute =     new ReplaceableAttribute(PLAYER_ATTRIBUTE, player, Boolean.TRUE);ReplaceableAttribute scoreAttribute =     new ReplaceableAttribute(SCORE_ATTRIBUTE, paddedScore, Boolean.TRUE);		List attrs = new ArrayList(2);attrs.add( playerAttribute );attrs.add( scoreAttribute );		PutAttributesRequest par = new PutAttributesRequest(HIGH_SCORES_DOMAIN, player, attrs);		sdbClient.putAttributes( par );

Remove Score (Item Deletion)

Removing a score from the list simply means deleting an item from the domain. Deleting an item requires the unique name for the item you wish to delete. In SimpleDB, deleting an item is done by removing all the attributes from that item. Invoking deleteAttributes with no specified attributes removes all the attributes by default.

DeleteAttributesRequest dar = new DeleteAttributesRequest( HIGH_SCORES_DOMAIN, player );sdbClient.deleteAttributes( dar );

Player View (Getting an Item)

Knowing an item's name makes it easy to find the item. This next snippet shows how to get all the attributes for an item using the item name. Note that items may contain many attributes and values.

GetAttributesRequest gar = new GetAttributesRequest( HIGH_SCORES_DOMAIN, player );GetAttributesResult response = sdbClient.getAttributes(gar);

List View and Sorting (Select)

Getting a collection of scores, sorted by player name or the score itself requires the use of a select request. A select request uses a simple query language to determine which items to match and what data to return and how. Select requests are paginated because the number of items matching the query can be large. Therefore, select requests return a next token that enables you to "page" through the data in an ordered fashion. The code here shows how to return items ordered by score from highest to lowest. Only the score and player attributes are returned. More information regarding SimpleDB queries can be found in a reference article linked below.

String select = "select player, score from HighScores where score >= '0' order by score desc";SelectRequest selectRequest = new SelectRequest( select ).withConsistentRead( true );selectRequest.setNextToken( nextToken );		SelectResult response = sdbClient.select( selectRequest );nextToken = response.getNextToken();

List Deletion (Domain Deletion)

The quickest and easiest way to remove the entire high score list would be to delete the SimpleDB domain. Here is how to do that.

DeleteDomainRequest ddr = new DeleteDomainRequest( HIGH_SCORES_DOMAIN );sdbClient.deleteDomain(ddr);

Conclusion

The code in this article demonstrates how to use Amazon SimpleDB as an indexed storage device for your app. The complete sample app is included as part of the AWS mobile SDKs, which are linked below. The reference section also contains a link to a SimpleDB article which discusses writing queries for SimpleDB in detail.

References

Find more information about SimpleDB here.

A sample app that includes this code is provided with the AWS SDK for Android

For more information about using AWS credentials with apps see the article, Authenticating Users of AWS Mobile Applications with a Token Vending Machine
 

Questions?

Please feel free to ask questions or provide comments in the Mobile Development Forum.

November 28, 2011

lisamar

KO-aag-apps._V162619036_
 

Recently Amazon released Kindle Fire, our newest addition to the Kindle family that showcases a color touch display and provides instant access to the Amazon Appstore for Android and Amazon’s massive selection of digital content, as well as free storage in the Amazon Cloud.

Kindle Fire puts Amazon’s digital powerhouse of content at customers’ fingertips. In addition to the thousands of popular apps and games available in the Amazon Appstore for Android, customers can also choose from over 18 million movies, TV shows, songs, magazines, and books—and all of their Amazon content is automatically stored in the Amazon cloud, free of charge. Web browsing is simple and fast with Amazon Silk and an even better experience because of the Kindle Fire’s vibrant color touchscreen with an extra-wide viewing angle. All this, plus a fast, powerful dual-core processor, and an unbeatable price, make us proud of this newest member of our Kindle family.

Don’t take our word on it though—we’re not the only ones admiring Kindle Fire!

The first easy-to-use, affordable small-screen tablet, the Amazon Kindle Fire is revolutionary...I can't emphasize this "ease of use" thing enough. More than anything else, that's what's been holding non-iPad tablets back. Amazon cracked it. End of story." - PC Mag

"The Kindle Fire is a 7-inch tablet that links seamlessly with Amazon's impressive collection of digital music, video, magazine, and book services in one easy-to-use package. It boasts a great Web browser, and its curated Android app store includes most of the big must-have apps (such as Netflix, Pandora, and Hulu). The Fire has an ultra-affordable price tag, and the screen quality is exceptional for the price." – CNET

How do you get your app onto the Kindle Fire?

Submit it! Simply join the Amazon Appstore Developer Program, if you haven’t already, and submit your app using the Amazon Appstore Developer Portal just as you would if you were submitting to our store for any other supported Android device. All apps will go through regular Amazon Appstore testing, as well as testing for Kindle Fire.

What are the requirements for your app to work on Kindle Fire?

For your app to work on Kindle Fire, it needs to be compatible with the device's specifications. At a high level, it must be optimized for non-Google Mobile Services (GMS), Android 2.3.4 (Gingerbread), and a 7" screen with a resolution of 1024 x 600. Your app cannot require a gyroscope, camera, WAN module, Bluetooth, microphone, GPS, or micro-SD to function. In addition, your app must not be a theme or wallpaper that manipulates the user interface of the device. As with any other app submission to the Amazon Appstore for Android, your app will also need to comply with our Content Guidelines. For additional information, please visit our Kindle Fire FAQs.

What if your app was already submitted - will it be considered?

Yes. If you already have an app published in the Amazon Appstore for Android, we will automatically review the app for Kindle Fire compatibility. We're currently in the process of testing our entire catalog of published apps to ensure each app provides a high-quality customer experience on Kindle Fire.

What if you want to test your app(s) prior to submitting?

We strongly recommend you test your app on your own and submit an update if you discover any problems. It is possible to configure a standard Android emulator to simulate the Kindle Fire device platform. You should configure your emulator with the following characteristics:

  • Width: 600px
  • Height: 1024px (the device will reserve 20px of the height to display a soft key menu, yielding a height of 1004px when in full-screen mode)
  • Abstracted LCD Density: 169
  • Target: Android 2.3.4 - API Level 10
  • RAM: 512 MB

If you haven’t already submitted your apps, submit via the Amazon Appstore Developer Portal. Interested in marketing opportunities?  Fill out our marketing request form.

November 14, 2011

amberta

Kindle Fire ships today, and we think this is a huge win for Amazon.com customers and Amazon Appstore for Android developers.  As we mentioned in a Kindle Fire announcement blog post, Kindle Fire boasts Amazon’s incredible selection of digital content at customers’ fingertips:

  • Amazon Appstore for Android – thousands of popular apps and games
  • 18 million movies, TV shows, songs, magazines, and books
  • Ultra-fast web browsing - Amazon Silk 
  • Free cloud storage for all your Amazon content
  • Vibrant color touchscreen with extra-wide viewing angle  
  • Fast, powerful dual-core processor 

For Amazon Appstore developers, Kindle Fire offers another venue for getting your apps in front of potential customers. You’ll start seeing Kindle Fire, and apps that were Amazon-tested on Kindle Fire for the best experience possible, sprinkled throughout Amazon.com and in the Amazon Appstore marketing campaigns, in addition to the placements where we’ve already been showcasing apps. You can view a selection of some of our favorite Kindle Fire apps in the Amazon Appstore here.

Some of the titles you may have seen in recent press include Netflix, Rhapsody, Pandora, Comics by comiXology, Facebook, The Weather Channel and popular games from Zynga, EA, Gameloft, PopCap, and Rovio.  Thousands of the Amazon Appstore editorial team’s favorites, such as Bird’s the Word, Pinball Deluxe, SketchBook Mobile, Super Sudoku, X Construction, Monkey Preschool Lunchbox, and more are available as well.

What does this mean for you?
As always, we encourage you to ensure you have submitted the most current versions of all your apps to the Amazon Appstore for Android. Now is also a good time to verify that each app’s meta-data (including list price) is up-to to-date. You can update your existing apps and submit new apps using the Amazon Appstore Developer Portal.

Where can you find the technical specifications for Kindle Fire?
The Kindle Fire has a 7” multi-touch display with 1024 x 600 pixel resolution at 169 ppi, can display 16 million colors, and has instant access to the Amazon Appstore for Android. For more detailed information about the device, including technical specifications, app compatibility information, development tips, and instructions for submitting your app, please see our Kindle Fire FAQ.

You can order a Kindle Fire to test your apps online at amazon.com/kindlefire.

How can developers get merchandising placement in the Amazon Appstore and on Kindle Fire?
If you have ideas about merchandising and marketing your app at the Amazon Appstore, or if you would like to be considered for Free App of the Day placement, please fill out the Marketing Proposal Form.

November 10, 2011

gdierkes

This article demonstrates how to use the AWS SDK for Android to uploadan image to Amazon Simple StorageService (S3) from your mobile device and how to make that imageavailable on the web. Amazon S3 is storage for the Internet. It's a simplestorage service that offers software developers a highly-scalable,reliable, secure, fast, and inexpensive data storage. The complete samplecode and project files are included in the AWS SDK for Android which canbe found here.

To use the AWS SDK for Android, you will need your AWS credentials,that is, your Access Key ID and Secret Access Key. If you haven'talready signed up for Amazon WebServices (AWS), you will need to do that first to get your AWScredentials. You can sign up for AWS here.

Here's what the sample app looks like at start up on Android:

Android-Uploader

Photo Upload

The app uses each platform's "image picker" utility to have theend-user select an image for upload. The app then creates an Amazon S3client, uses the client to create an Amazon S3 bucket in which to storethe image, and finally uploads the image into the bucket. A bucket is acontainer for objects stored in Amazon S3. Every object--such as animage--is contained within a bucket.      

Get the image

The first step is to retrieve the content, in this case an image, tobe uploaded to Amazon S3. For this sample app, selecting an image from thedevice itself is an easy choice.

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);intent.setType("image/*");startActivityForResult(intent, PHOTO_SELECTED);

Android-Image-Picker

Once an image is selected, a callback method is invoked with theselected image's information. The app uses this information to completethe upload.

Upload the image

Once we have the image, we can attempt to upload it to Amazon S3.

First, create an Amazon S3 client to communicate withthe service.

AmazonS3Client s3Client =   new AmazonS3Client( new BasicAWSCredentials( MY_ACCESS_KEY_ID, MY_SECRET_KEY ) );

Second, create an Amazon S3 bucket to store thepicture.

s3Client.createBucket( MY_PICTURE_BUCKET );

Finally, put the image object into the Amazon S3bucket.

PutObjectRequest por =    new PutObjectRequest( Constants.getPictureBucket(),                          Constants.PICTURE_NAME,                          new java.io.File( filePath) );s3Client.putObject( por );

Browser Display

The app makes the image available for viewing in a browser bygenerating a pre-signed URL. A pre-signed URL is a URL for an Amazon S3resource that is signed with current AWS security credentials. Thepre-signed URL can then be shared with other users, allowing them toaccess resources without providing an account's AWS securitycredentials.

First, create an override content type to ensure thatthe "content" will be treated as an image by the browser.

ResponseHeaderOverrides override = new ResponseHeaderOverrides();override.setContentType( "image/jpeg" );

Second, create the pre-signed URL request. Pre-signedURLs can be created with an expiration date, that is, a date andtime after which the resource will no longer be available. In the sample,the pre-signed URLs are valid for only one hour.

GeneratePresignedUrlRequest urlRequest =    new GeneratePresignedUrlRequest( Constants.getPictureBucket(),                                     Constants.PICTURE_NAME );// Added an hour's worth of milliseconds to the current time.urlRequest.setExpiration(    new Date( System.currentTimeMillis() + 3600000 ) );urlRequest.setResponseHeaders( override );

Third, generate the pre-signed URL. 

URL url = s3Client.generatePresignedUrl( urlRequest );

Finally, launch the browser to view the pre-signed URLwhich will display the image. 

startActivity(    new Intent( Intent.ACTION_VIEW, Uri.parse( url.toURI().toString() ) ));

Android-ShowPic

Next Steps

These few lines of code demonstrate how Amazon S3 could become alimitless storage device for your mobile photos. A photo sharing app thatallows users to view photos from other users would not be a difficultextension to the above code. Also, the content that is uploaded and sharedis not limited to images. The content could be audio files, video files,text, or other content that users want to store and share. 

References

A sample app that includes this code is provided with both mobile SDKs.The download links can be found here: AWS SDK for Android.

For more information about using AWS credentials with mobileapplications see the following article: Authenticating Users of AWS Mobile Applications with a Token VendingMachine

Questions?

Please feel free to ask questions or make comments in the MobileDevelopment Forum.

Portions of this page are reproduced from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.

November 08, 2011

johnjord

Recently, the Amazon Appstore for Android featured Read It Later Pro as the Free App of the Day. The extremely popular and useful application allows users to save what they find on the web to watch and read on any device and at any time – a “DVR for the web,” states The New York Times.

Founded in 2007, the company already boasts 3.5 million users and sees millions of articles saved each week through their very user-friendly and seamless service.

Also, the company “runs the entire Read It Later operation on Amazon Web Services [AWS],” states founder Nate Weiner. “We take advantage of EC2 for our servers, ELB for load balancing, S3 and EBS for storage. We also use Amazon Simple Email Services [SES], which has simplified our e-mail communications and made them more effective.” Although very excited about the Free App of the Day promotion, the Read It Later team expressed some concern over the large number of expected new customers and the impact on their 50K daily e-mail limit through SES.

According to Read It Later CTO and Engineer Matt Koidin, the internal teams at Amazon moved quickly to address a solution for this use case. “We initially thought we would need additional development to work around the e-mail limit… but our account manager was able to coordinate with the AWS team to increase the limit for the day,” Koidin said.

Koidin and team see this as another example of the Amazon Appstore’s ability to provide an advantage through its network of services for developers. “Having Amazon not only run the promotion, but work with the broader Amazon organization (i.e. AWS) to provide some assistance so it didn’t overwhelm us or require additional work, shows they are aligned as a partner to make this a success for everyone involved,” added Koidin.

The team at Read It Later was happy to report that the promotion resulted in “one of our largest days of new user acquisition ever” and “we’ve seen our transaction level sustain at a higher level than prior to the promotion.” They see more exciting opportunities down the road to incorporate additional Amazon services for developers.  When asked if they would run the Free App of the Day promotion again, Koidin replied with a simple, “Absolutely.”

Learn more about AWS online here.

October 28, 2011

amberta

Last month we announced a promotion with Amazon Web Services (AWS) where qualifying developers who submit an Android app or app update to the Amazon Appstore for Android are eligible to receive a $50 AWS credit to use toward the following services:

Remember, there’s still time to submit. The promotion runs through November 15, 2011, and we encourage you to get your apps in soon. We encourage you to ensure you’ve submitted the current versions of all your apps to the Amazon Appstore. Now is also a good time to verify that each app’s meta-data (including list price) is up-to-date. You can update your existing apps and submit new apps using the Amazon Appstore Developer Portal.

For developers new to AWS, here’s a great video on how to get started:

Many developers have already qualified for and received their promotion code for AWS. AWS combined with the Amazon Appstore provide a solid suite of solutions to build apps and a great place to get exposure. MightyMeeting, an app that enables users to run online meetings on the go from tablets, smartphones, or any web-enabled device is one great example. “We needed a cost-efficient robust infrastructure that could be used to manage presentations and online meetings in the cloud and scale up or down dynamically depending on the workload. We found that AWS addresses all our needs, even real-time media streaming during a meeting,” says Dmitri Tcherevik, CEO of MightyMeeting Inc.

Learn more about the AWS SDK and this promotion online here. To apply your code, sign up for an AWS account and apply your promotion code by visiting: http://aws.amazon.com/awscredits/

Submit your app online here.