Как запустить образец Google Glass GDK на устройстве?

Я начинаю разработку приложения Google Glass с помощью GDK.

Я использую Eclipse с Android SDK Manager для установки GDK.

После этого я импортирую проект Google Glass, следуя шагам, указанным здесь. :

  1. Нажмите Файл > Новый проект > Образец проекта Android.
  2. Выберите Glass Development Kit в качестве цели сборки и нажмите «Далее».
  3. Выберите образец Таймер и нажмите Готово.
  4. В обозревателе пакетов Eclipse щелкните образец правой кнопкой мыши и выберите Запуск от имени > Приложение Android, подключив Glass к вашей системе разработки.

Google Glass (версия XE12) подключены, но ничего не отображается. Затем я следую другому руководству. онлайн, чтобы запустить приложение вручную с помощью команды adb:

./adb shell am start -n com.google.android.glass.sample.timer/.MenuActivity

Но результатом является отказ в доступе:

$ ./adb shell am start -n com.google.android.glass.sample.timer/.MenuActivity
Starting: Intent { cmp=com.google.android.glass.sample.timer/.MenuActivity }
java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.google.android.glass.sample.timer/.MenuActivity } from null (pid=2938, uid=2000) not exported from uid 10032
    at android.os.Parcel.readException(Parcel.java:1327)
    at android.os.Parcel.readException(Parcel.java:1281)
    at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1631)
    at com.android.commands.am.Am.runStart(Am.java:441)
    at com.android.commands.am.Am.run(Am.java:108)
    at com.android.commands.am.Am.main(Am.java:81)
    at com.android.internal.os.RuntimeInit.finishInit(Native Method)
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:238)
    at dalvik.system.NativeStart.main(Native Method)

Как решить проблему ?

С другой стороны, я сделал приложение, похожее на пример Android, используя Eclipse. После того, как я нажал «Запуск от имени» > «Приложение Android» в строке меню Eclipse, консоль сказала:

[2014-01-06 18:55:10 - Glass001] Android Launch!
[2014-01-06 18:55:10 - Glass001] adb is running normally.
[2014-01-06 18:55:10 - Glass001] No Launcher activity found!
[2014-01-06 18:55:10 - Glass001] The launch will only sync the application package on the device!
[2014-01-06 18:55:10 - Glass001] Performing sync
[2014-01-06 18:55:10 - Glass001] Automatic Target Mode: Unable to detect device compatibility. Please select a target device.
[2014-01-06 18:55:17 - Glass001] Uploading Glass001.apk onto device '015DBXXXXXX701C'
[2014-01-06 18:55:17 - Glass001] Installing Glass001.apk...
[2014-01-06 18:55:20 - Glass001] Success!
[2014-01-06 18:55:20 - Glass001] /Glass001/bin/Glass001.apk installed on device
[2014-01-06 18:55:20 - Glass001] Done!
[2014-01-06 18:56:48 - Glass001] ------------------------------

Относится ли это к сообщению об ошибке «Не найдена активность Launcher!» ? Ссылаясь на эту ошибку, я нашел ответ в Stack Overflow. Где я должен поместить строки в следующих AndroidManifest.xml?

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.google.android.glass.sample.timer"
    android:versionCode="2"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="15" />

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

        <activity
            android:name="com.google.android.glass.sample.timer.MenuActivity"
            android:label="@string/app_name"
            android:theme="@style/MenuTheme"
            android:enabled="true" >
        </activity>

        <activity
            android:name="com.google.android.glass.sample.timer.SetTimerActivity"
            android:label="@string/app_name"
            android:enabled="true" >
        </activity>

        <activity
            android:name="com.google.android.glass.sample.timer.SelectValueActivity"
            android:label="@string/app_name"
            android:enabled="true" >
        </activity>

        <service
            android:name="com.google.android.glass.sample.timer.TimerService"
            android:icon="@drawable/ic_timer"
            android:label="@string/app_name"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="com.google.android.glass.action.VOICE_TRIGGER" />
            </intent-filter>
            <meta-data
                android:name="com.google.android.glass.VoiceTrigger"
                android:resource="@xml/voice_trigger_start" />
        </service>

    </application>

</manifest>

Включен режим отладки Google Glass (да, я вижу устройство в Eclipse)


person Raptor    schedule 06.01.2014    source источник


Ответы (1)


Вам нужно настроить конфигурацию отладки, которая будет работать для этого. Первоначально это приложение не запускается без взаимодействия с пользователем. Если вы перейдете в раскрывающийся список отладки и скажете настроить, вы можете автоматически запустить действие по вашему выбору. Итак, вверху выберите проект, а затем, когда он спросит, что делать, скажите об автоматическом запуске с раскрывающимся списком рядом с ним. Используйте раскрывающийся список, чтобы выбрать действие, которое вы хотите запустить автоматически. Затем попробуйте отладить приложение, и оно должно запуститься автоматически на вашем стекле.

person w9jds    schedule 06.01.2014
comment
раскрывающееся меню отладки и скажите настроить, что вы можете автоматически запускать действие по вашему выбору где это? в меню Glass/в Eclipse? Я новичок в Google Glass. - person Raptor; 06.01.2014
comment
Эта опция находится в затмении. Он должен быть вверху рядом с кнопкой ошибки, у вас будет раскрывающийся список, и одним из вариантов будет конфигурация отладки или редактирование конфигурации. - person w9jds; 06.01.2014
comment
Кроме того, если вы хотите жестко закодировать действие для запуска, я бы просто добавил строки намерения в службу, потому что это то, что обычно запускается, когда вы выполняете голосовую команду на экране команды ok glass. вот почему вы видите фильтр намерений в сервисе. - person w9jds; 06.01.2014
comment
Оно работает! Как ни странно, по умолчанию нет активности по умолчанию для запуска. - person Raptor; 07.01.2014
comment
Это связано с тем, что для Google Glass у вас есть действия, запускаемые голосовыми намерениями, а не по умолчанию. - person w9jds; 07.01.2014