在Google Glass中开始视频捕获活动

时间:2014-05-25 00:08:19

标签: android android-activity google-glass

基本上我正在创建一个小应用程序,它应该在从另一台计算机接收ping时录制视频。

我已扩展Google Glass stopwatch example以创建基本的直播卡。我删除了ChronometerView.java并更改了CountDownView.java,因此它不会倒计时但会打开ServerSocket并在收到另一台计算机的ping后显示文字。

这一切顺利,但现在我想开始Glass'收到信号后,CountDownView.java built-in camera activity {{3}}。只是插入以下代码不起作用(据我所知)CountDownView.java不会扩展activity

Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(intent, TAKE_VIDEO_REQUEST);

那么如何在此时启动相机活动?

1 个答案:

答案 0 :(得分:2)

您需要从上下文启动活动。请按照以下步骤进行首先测试:

在StopwatchService.java中,添加:

private static StopwatchService mAppService;     

public static StopwatchService appService() {
    return mAppService;
}   

@Override
public void onCreate() {
    super.onCreate();
    mAppService = this;
}

在CountDownView.java中,在public CountDownView(Context context, AttributeSet attrs, int style) {...}的末尾添加:

mHandler.postDelayed(mLaunchVideoRunnable, 1000);

同样在CountDownView.java中,添加:

private final Handler mHandler = new Handler();  
private final Runnable mLaunchVideoRunnable = new Runnable() {
    @Override
    public void run() {
        Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        StopwatchService.appService().startActivity(intent);
    }
}; 

请注意,您需要添加FLAG_ACTIVITY_NEW_TASK,否则您的应用会崩溃。测试运行后,您可以将代码复制到接收套接字数据的位置。