4

J'ai essayé tant de façons mais je ne peux pas réussir. Je ne l'ai pas trouvé des exemples de code source pour Android (environ rekognition)Comment puis-je détecter des fentes dans Amazon Rekognition AWS avec Android Studio?

il y a un code source en Java dans le Guide du développeur, mais je ne peux pas mettre en œuvre que même si j'essayé TT

J'essaie de détecter les visages en envoyant un fichier image à partir d'un stockage externe (de l'émulateur) Je ne sais pas ce que je fait de mal (je ne suis pas bon codage) Voici mon code

AmazonRekognitionClient amazonRekognitionClient; 
Image getAmazonRekognitionImage; 
DetectFacesRequest detectFaceRequest; 
DetectFacesResult detectFaceResult; 
File file = new File(Environment.getExternalStorageDirectory(),"sungyeol.jpg.jpg"); 

public void test_00(View view) { 
ByteBuffer imageBytes; 
try{ 
     InputStream inputStream = new FileInputStream(file.getAbsolutePath().toString()); 
     imageBytes = ByteBuffer.wrap(IOUtils.toByteArray(inputStream)); 
     Log.e("InputStream: ",""+inputStream); 
     Log.e("imageBytes: ",""); 
     getAmazonRekognitionImage.withBytes(imageBytes); 

     // Initialize the Amazon Cognito credentials provider 
     CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
       getApplicationContext(), 
       "us-east-2:.......", // Identity Pool ID 
       Regions.US_EAST_2 // Region 
     ); 

     //I want "ALL" attributes 
     amazonRekognitionClient = new AmazonRekognitionClient(credentialsProvider); 

     detectFaceRequest = new DetectFacesRequest() 
       .withAttributes(Attribute.ALL.toString()) 
       .withImage(getAmazonRekognitionImage); 

     detectFaceResult = amazonRekognitionClient.detectFaces(detectFaceRequest); 
     detectFaceResult.getFaceDetails(); 

    } 
catch(Exception ex){ 
    Log.e("Error on something:","Message:"+ex.getMessage()); 
} 

et voici mes erreurs

02-04 09:30:07.268 29405-29405/? E/InputStream:: java.io.[email protected] 
02-04 09:30:07.271 29405-29405/? E/Error on something:: Message:Attempt to invoke virtual method 'com.amazonaws.services.rekognition.model.Image com.amazonaws.services.rekognition.model.Image.withBytes(java.nio.ByteBuffer)' on a null object reference 

Qu'est-ce qu'une référence d'objet nul? J'essaie de changer le chemin du fichier mais il a dit pas un tel fichier ... et quand je change à ce chemin, il y a des erreurs ci-dessus. par la façon dont j'ai déjà demandé à un utilisateur une permission d'accéder à un dossier de l'émulateur dans Android

s'il vous plaît aidez-moi PS. désolé pour mon mauvais anglais

Merci d'avance.

Répondre

2

Maintenant, je suis ok avec les questions Je suis passé par Manou beaucoup de choses Merci

Je suis thaïlandais et je devais essayer plus difficile de trouver les solutions parce qu'il ya un manque d'informations dans la langue particulière, mais voici mes solutions.

Mes solutions sont:

0.There est un critère d'évaluation pour la mise au Rekognition -> http://docs.aws.amazon.com/general/latest/gr/rande.html#rekognition_region

1.Dans un « objet nul problème de référence » Je trouve que je dois créer un nouvel objet premier tel que "Image image = new Image();" < - La commande « new » crée une instance d'objet dans cette classe

2.Après l'erreur ci-dessus, il y a plus d'erreurs (erreurs sur NetworkOnMainThreadException), alors j'ai essayé tout jusqu'à ce que je trouve cette page -> https://docs.aws.amazon.com/cognito/latest/developerguide/getting-credentials.html la page a dit que ...

enter image description here

par conséquent, je levai les yeux pour plus d'informations sur le AsyncTask et après que je créé une classe de AsyncTask puis je déplacer tout mon code sur l'initialisation, la demande, la réponse à la classe AsyncTask. ไหล รัน ตอน ท้าย ๆ น้ำตา ไหล ไหล mon code a fonctionné ... TT et par la conclusion le sungyeol.jpg.fichier jpg travaillé

par exemple

private void testTask(){ 
    .... all code in the main thread particularly on the requests and responses 
    from the services 
//print the response or the result 
//Log.e() makes the message in the android monitor red like an error 
Log.e("Response:", [responseparameter.toString()]); 

} 

//create the inherited class from the AsyncTask Class 
//(you can create within your activity class) 
class AsyncTaskRunner extends AsyncTask<String,String,String>{ 
    @Override 
    public String doInBackground(String ... input){ 
     testTask(); // call the testTask() method that i have created 
     return null; // this override method must return String 
    } 

} 

//I've created a button for running the task 
public void buttonTask(View view){ 
    AsyncTaskRunner runner = new AsyncTaskRunner(); 
    runner.execute(); 

} 

pour plus d'informations sur la AsyncTask:

https://developer.android.com/training/basics/network-ops/connecting.html#AsyncTask

http://www.compiletimeerror.com/2013/01/why-and-how-to-use-asynctask.html#.WJdkqVOLTIU

J'espère que ces aide :)

+0

Il sera utile si vous pouvez poster votre solution, je suis dans la même situation. –

+0

J'ai édité mon poste pour plus d'informations, j'espère que ceux-ci peuvent vous aider. –