1

J'ai le même code avec une version inférieure (9.4.0) qui fonctionne sur le téléphone mais pour une raison quelconque, il ne fonctionnera pas sur RPi3? Mon build.gradleAndroid Choses - ne peut pas utiliser API Awareness

compile 'com.google.android.gms:play-services:10.0.0' 
provided 'com.google.android.things:androidthings:0.4-devpreview' 

Les autorisations manifeste

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.INTERNET" /> 

La méthode

private void getWeather() { 

    // Check for permission first 
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) 
      != PackageManager.PERMISSION_GRANTED) { 

     Log.e(TAG, "Fine Location Permission not yet granted"); 

     ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION); 

    } else { 
     System.out.println("else of getWeather()"); 
     Log.i(TAG, "Fine Location permission already granted"); 

     // Weather 
     Awareness.SnapshotApi.getWeather(mGoogleApiClient).setResultCallback(new ResultCallback<WeatherResult>() { 
        @Override 
        public void onResult(@NonNull WeatherResult weatherResult) { 
         if (!weatherResult.getStatus().isSuccess()) { 
          Log.e(TAG, "Could not detect weather info"); 
          mWeatherTextView.setText("Could not detect weather info"); 
          mWeatherTextView.setTextColor(Color.RED); 
          System.out.println("NO WEATHER INFO"); 
          return; 
         } 
         System.out.println("WEATHER INFO REC'D"); 
         Weather weather = weatherResult.getWeather(); 
         mWeatherTextView.setText(weather.toString()); 
        } 
       }); 
    } 
} 

Le logcat

08-15 23:46:09.504 411-432/? I/WindowManager: Destroying surface Surface(name=Starting com.example.cartier.thingsaware) called by com.android.server.wm.WindowStateAnimator.destroySurface:2014 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:881 com.android.server.wm.WindowState.destroyOrSaveSurface:2073 com.android.server.wm.AppWindowToken.destroySurfaces:363 com.android.server.wm.WindowStateAnimator.finishExit:565 com.android.server.wm.WindowStateAnimator.stepAnimationLocked:491 com.android.server.wm.WindowAnimator.updateWindowsLocked:303 com.android.server.wm.WindowAnimator.animateLocked:704 
08-15 23:46:09.594 411-1124/? I/WindowManager: Destroying surface Surface(name=com.android.iotlauncher/com.android.iotlauncher.IoTLauncher) called by com.android.server.wm.WindowStateAnimator.destroySurface:2014 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:881 com.android.server.wm.WindowState.destroyOrSaveSurface:2073 com.android.server.wm.AppWindowToken.destroySurfaces:363 com.android.server.wm.AppWindowToken.notifyAppStopped:389 com.android.server.wm.WindowManagerService.notifyAppStopped:4456 com.android.server.am.ActivityStack.activityStoppedLocked:1252 com.android.server.am.ActivityManagerService.activityStopped:6902 
08-15 23:46:11.780 411-479/? E/TaskPersister: File error accessing recents directory (directory doesn't exist?). 
08-15 23:46:35.798 3687-3687/? I/System.out: else of getWeather() 
08-15 23:46:35.798 3687-3687/? I/MainActivity: Fine Location permission already granted 

Pour une raison quelconque, il arrête après me dire l'autorisation est accordé. L'application ne plante pas, j'ai un OnClickListener qui appelle getWeather() pour que je puisse cliquer de manière répétée mais ne reçoive jamais de données instantanées. J'utilise la même clé API qui fonctionne sur le téléphone ...

Selon le docs l'API de sensibilisation est prise en charge sur les AndroidThings & j'ai vu des projets étaient des gens affirment avoir utilisé à proximité & autres API dans le liste. Quelqu'un at-il eu du succès avec l'API Awareness sur AndroidThings?

Après la mise à jour à jouer des services 11.0.0 l'application ouvre la ferme immédiatement & l'logcat montre maintenant

08-17 18:13:28.510 3148-3148/? I/System.out: onCreate 
08-17 18:13:28.615 410-432/? I/ActivityManager: Displayed com.example.cartier.thingsaware/.MainActivity: +1s45ms 
08-17 18:13:28.665 410-525/? I/WindowManager: Destroying surface Surface(name=com.android.iotlauncher/com.android.iotlauncher.IoTLauncher) called by com.android.server.wm.WindowStateAnimator.destroySurface:2014 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:881 com.android.server.wm.WindowState.destroyOrSaveSurface:2073 com.android.server.wm.AppWindowToken.destroySurfaces:363 com.android.server.wm.AppWindowToken.notifyAppStopped:389 com.android.server.wm.WindowManagerService.notifyAppStopped:4456 com.android.server.am.ActivityStack.activityStoppedLocked:1252 com.android.server.am.ActivityManagerService.activityStopped:6902 
08-17 18:13:28.881 410-432/? I/WindowManager: Destroying surface Surface(name=Starting com.example.cartier.thingsaware) called by com.android.server.wm.WindowStateAnimator.destroySurface:2014 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:881 com.android.server.wm.WindowState.destroyOrSaveSurface:2073 com.android.server.wm.AppWindowToken.destroySurfaces:363 com.android.server.wm.WindowStateAnimator.finishExit:565 com.android.server.wm.WindowStateAnimator.stepAnimationLocked:491 com.android.server.wm.WindowAnimator.updateWindowsLocked:303 com.android.server.wm.WindowAnimator.animateLocked:704 
08-17 18:13:28.990 3148-3148/? I/Process: Sending signal. PID: 3148 SIG: 9 
08-17 18:13:29.047 410-929/? I/ActivityManager: Process com.example.cartier.thingsaware (pid 3148) has died 
08-17 18:13:29.047 410-525/? I/WindowManager: WIN DEATH: Window{9cbd0a u0 com.example.cartier.thingsaware/com.example.cartier.thingsaware.MainActivity} 
08-17 18:13:29.048 410-525/? I/WindowManager: Destroying surface Surface(name=com.example.cartier.thingsaware/com.example.cartier.thingsaware.MainActivity) called by com.android.server.wm.WindowStateAnimator.destroySurface:2014 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:881 com.android.server.wm.WindowState.removeLocked:1449 com.android.server.wm.WindowManagerService.removeWindowInnerLocked:2478 com.android.server.wm.WindowManagerService.removeWindowLocked:2436 com.android.server.wm.WindowState$DeathRecipient.binderDied:1780 android.os.BinderProxy.sendDeathNotice:688 <bottom of call stack> 
08-17 18:13:29.083 638-638/? I/AndroidThingsLauncher: Peripheral I/O ports 
08-17 18:13:29.083 638-638/? I/AndroidThingsLauncher: GPIO 
+1

Avez-vous essayé la dernière version de AndroidThings? '0.5.0' avec Play Services' 11' https://developer.android.com/things/preview/releases.html – Blundell

+0

Merci @Blundell. Je ai essayé de flasher 0.5.0 plusieurs fois, mais pas de chance avec elle. Suivi des directions ThingsConsole: créer un produit (certain que j'ai la bonne SOM & gauche 32MB OEM par défaut)> produit de config> construire l'image de l'appareil (avec bundle vide)> télécharger et flash mais chaque fois l'écran est vide. Avez-vous fait quelque chose de spécial pour créer votre build RPi3? – JC23

Répondre

0

Dans l'ensemble, Android choses nécessite une version minimale Services Play client de 11.0.0. C'est la version où la variante IoT de Play Services a été introduite. Ceci est noté dans la documentation sous Support for Google Services. Pour de meilleurs résultats, vous devez faire correspondre la version de la bibliothèque à la version exacte fournie avec la version de prévisualisation que vous exécutez. Vous pouvez trouver ces numéros de version sur le Release Notes.

+0

Merci @Devunwired pour les commentaires. Maintenant avec Play Services 11.0.0 l'application s'ouvre et ferme immédiatement l'affichage de la page du lanceur? Voir le nouveau logcat ci-dessus. Les choses que j'ai (0.4.1) n'ont pas été téléchargées depuis la console mais directement depuis la page web comme toutes les versions précédentes. Flashed version 0.5.0 (trois fois) comme Blundell suggéré, mais toujours à un écran vide? Utilisé un paquet vide à chaque fois et pourrait être ajouté pour voir la liste des paquets mais aucune sortie vidéo n'est retournée à 0.4.1? Des idées sur la façon de procéder? – JC23