我需要从库类打开相机。这是下面的代码:
class LibraryClass extends AppCompatActivity{
public void openCamera(){
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
}
}
我收到了这个错误:
cannot resolve method
startActivityForResult(android.content.Intent,int)
我们不能在库中使用startActivityForResult吗?
编辑1:
我找到了similar question in stackoverflow,但无法得到满意的答案。
答案 0 :(得分:1)
尝试代码
this.startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
答案 1 :(得分:1)
这是你的完整代码吗?好像没问题。您可以在任何活动上调用startActivityForResult()
,因此请确保在调用此方法时,您正在活动类上执行此操作。
答案 2 :(得分:0)
传递Context
作为参数,然后在启动新意图context.startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
class LibraryClass extends AppCompatActivity{
static final int REQUEST_IMAGE_CAPTURE = 1;
// call by pass reference
openCamera(LibraryClass.this);
public void openCamera(Context context){
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
context.startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
}
}