Android отправка данных в AWS

android amazon-web-services

423 просмотра

1 ответ

34 Репутация автора

Я начинаю учиться использовать клиент Android для отправки данных в реальном времени в AWS. Я использую кинезис для отправки данных. Однако я не нашел образец кода. Я пытаюсь написать коды, основанные на моем понимании из учебника AWS, чтобы начать ( http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/getting-started-kinesis.html ). Однако, есть еще две проблемы: 1. context.getCachedDir () имеет ошибку. Я не знаю, как установить контекст (dir на смартфоне или dir на AWS?) 2. Защищенный Void doInBackground (Void ... v) заявление о пропущенном возврате.

Есть ли какие-либо предложения, чтобы выяснить проблему? THX

public class MainActivity extends AppCompatActivity {

   CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
         getApplicationContext(), // Context
         "us-east-1:75d540bf-08c8-42fc-87a1-xxxx", // Identity Pool ID
         Regions.US_EAST_1 // Region
   );


   // working directory for the recorder
   File directory = context.getCachedDir();
   // AWS Firehose region
   Regions region = Regions.US_WEST_2;
   // initialize a credentials provider
   AWSCredentialsProvider provider = new CognitoCachingCredentialsProvider(
         context,
         "us-east-1:75d540bf-08c8-42fc-87a1-xxxxx",
         Regions.US_EAST_1);

   KinesisFirehoseRecorder firehoseRecorder = new KinesisFirehoseRecorder(
         directory, region, provider);


   // save some strings
   String streamName = "my_stream"; // Firehose delivery stream name



   @Override
   protected void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
      setSupportActionBar(toolbar);

      FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
      fab.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View view) {
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                  .setAction("Action", null).show();
         }
      });



      firehoseRecorder.saveRecord("Hello world!\n", streamName);
      firehoseRecorder.saveRecord("Streaming data to S3 via Firehose is easy.\n", streamName);

      // send previously save data to Amazon Firehose
      // Note: submitAllRecords() makes network calls, so wrap it in an AsyncTask.

      new AsyncTask<Void, Void, Void>() {
         @Override
         protected Void doInBackground(Void... v) {
            try {

               firehoseRecorder.submitAllRecords();

            } catch (AmazonClientException ace) {
               // error occurs.
            }
         }
      }.execute();


   }



   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.menu_main, menu);
      return true;
   }

   @Override
   public boolean onOptionsItemSelected(MenuItem item) {
      // Handle action bar item clicks here. The action bar will
      // automatically handle clicks on the Home/Up button, so long
      // as you specify a parent activity in AndroidManifest.xml.
      int id = item.getItemId();

      //noinspection SimplifiableIfStatement
      if (id == R.id.action_settings) {
         return true;
      }

      return super.onOptionsItemSelected(item);
   }


}
Автор: QuickLearner Источник Размещён: 18.07.2016 03:42

Ответы (1)


1 плюс

617 Репутация автора

Решение
  1. context.getCachedDir () имеет ошибку. - Это телефонная книга на стороне клиента. Ошибка должна указывать, что не так. Это стандартный метод Android. https://developer.android.com/reference/android/content/Context.html#getCacheDir ()

    1. Вы можете просто вернуть ноль;
Автор: WestonE Размещён: 04.08.2016 10:26
Вопросы из категории :
32x32