我正在研究一个学校项目,我有一个java服务器(pc)和一个Android客户端;我想用我的手机的相机作为电脑上的网络摄像头,所以我想制作一个在后台工作的Android应用程序,并将相机视图发送到PC服务器; 我已经使用socket在客户端和服务器之间建立了连接,在客户端主要我启动一个管理连接线程的服务,在这个线程中我应该启动相机服务(我还是不知道相机类是否工作,我'使用我在其他问题中找到的代码:https://gist.github.com/RoundSparrow/142b840ca86ba7a46639f23c5c0d195b) 在清单中我有:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
和
<service android:enabled="true" android:name=".MyService" />
<service android:enabled="true" android:name=".MyCamera" />
我尝试启动相机服务:
startService(new Intent(getBaseContext(),MyCamera.class));
但它说startService和getBaseContext()无法解决;我改变了它
Service S;
S.startService(new Intent(getBaseContext(),MyCamera.class));
所以我解决了stastService错误,但我不知道如何解决getBaseContext问题(我尝试使用null
上下文或S
或S.getBaseContext()
,但它调用nullpointer异常并崩溃);
我如何启动相机服务(或我需要在相机代码中添加的内容)?
有人已经在类似的东西上工作,可以给我一些帮助吗?
答案 0 :(得分:1)
你添加了相机权限?如果不加这个:
const dynNum = String(options.headers._dynSessConf)
this.http
.post(environment.domain + url, body, { headers: new HttpHeaders({
'_dynSessConf': dynNum,
'Authorization_Test': 'TestValue',
'ClientBrowserId': 'options.headers.clientbrowseruid',
'Content-Type': 'application/json'
})})
另请查看https://developer.android.com/reference/android/hardware/Camera以获取更多信息。 祝你好运。