3

我與Android的東西開發者預覽版安裝了樹莓PI訪問HardwarePropertiesManager。如何在Android事情

我想監視樹莓本身的CPU溫度和使用。

我的方法是使用HardwarePropertiesManager這樣的:

HardwarePropertiesManager hardware = (HardwarePropertiesManager) getSystemService(Context.HARDWARE_PROPERTIES_SERVICE); 
float[] cpuTemperature = hardware.getDeviceTemperatures(HardwarePropertiesManager.DEVICE_TEMPERATURE_CPU, HardwarePropertiesManager.TEMPERATURE_CURRENT); 

此呼叫需要設備所有者或個人資料所有者權限(或VR)。

我從來沒有使用設備所有者,所以我跟着這些鏈接的解釋:

Android Kiosk Mode Example

Android Shell Command DPM

但我得到了亞行外殼以下錯誤:

java.lang.RuntimeException: Can't set package ComponentInfo{com.myexample.androidthings/com.myexample.androidthings.BasicDeviceAdminReceiver} as device owner. 
at com.android.commands.dpm.Dpm.runSetDeviceOwner(Dpm.java:149) 
at com.android.commands.dpm.Dpm.onRun(Dpm.java:96) 
at com.android.internal.os.BaseCommand.run(BaseCommand.java:51) 
at com.android.commands.dpm.Dpm.main(Dpm.java:41) 
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) 
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:262) 

這裏是我的清單:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.myexample.androidthings.service"> 

<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 

<application 
    android:allowBackup="true" 
    android:icon="@android:drawable/sym_def_app_icon" 
    android:label="@string/app_name"> 

    <uses-library android:name="com.google.android.things"/> 

    <activity android:name="com.myexample.androidthings.MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

     <!-- Launch activity automatically on boot --> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.IOT_LAUNCHER"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
     </intent-filter> 
    </activity> 

    <service android:name="org.eclipse.paho.android.service.MqttService"></service> 

    <receiver 
     android:name="com.myexample.androidthings.BasicDeviceAdminReceiver" 
     android:permission="android.permission.BIND_DEVICE_ADMIN" > 
     <meta-data 
      android:name="android.app.device_admin" 
      android:resource="@xml/device_policies"/> 

     <intent-filter> 
      <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> 
      <action android:name="android.app.action.DEVICE_ADMIN_DISABLE_REQUESTED" /> 
      <action android:name="android.app.action.DEVICE_ADMIN_DISABLED" /> 
     </intent-filter> 
    </receiver> 
</application> 
</manifest> 

是否有人遇到這個錯誤在過去一個可以給我一個提示,我需要去查找錯誤。 也許我的方法也不正確,我可以用更簡單的方法得到CPU測量值。

+2

請提交有關您在獲得了適當的權限來使用這個API的問題一個bug報告:https://code.google.com/p/android/問題/項?模板=安卓%20Things%20bug%20report – Devunwired

+0

嗨,你解決了嗎? –

回答

0

變化意圖過濾該

<intent-filter> 
       <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> 
       <action android:name="android.app.action.ACTION_DEVICE_ADMIN_DISABLE_REQUESTED" /> 
       <action android:name="android.app.action.ACTION_DEVICE_ADMIN_DISABLED" /> 
      </intent-filter>