基本上我正在创建一个小应用程序,它应该在从另一台计算机接收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);
那么如何在此时启动相机活动?
答案 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,否则您的应用会崩溃。测试运行后,您可以将代码复制到接收套接字数据的位置。