我可以连接到网络服务,但我想要做的是连接网络服务后我想打开图库并从那里选择一个视频。你能帮我解决问题吗? 这是我的代码:
package com.isoft.uploader;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONObject;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class UploaderActivity extends Activity
{
//ArrayList<Response> WebData= new ArrayList<Response>();
public static final int SELECT_VIDEO=1;
public static final String TAG="UploadActivity";
String path="";
final String NAMESPACE = "http://tempuri.org/";
final String SERVICEURL = "http://192.168.10.177/androidws/isandroidws.asmx";
final String METHOD_NAME1="OzelVeriAlanlariniGetir";
final String METHOD_NAME="KullaniciGiris";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button enter=(Button)findViewById(R.id.Enter);
final EditText username=(EditText)findViewById(R.id.username);
final EditText password=(EditText)findViewById(R.id.password);
enter.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
//request code for Webservice
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
//sending the username to the webservice
request.addProperty("kullaniciAdi",username.getText().toString());
//sending the password to the webservice
request.addProperty("password",password.getText().toString());
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
//Putting the request in an envelope
envelope.setOutputSoapObject(request);
HttpTransportSE transport = new HttpTransportSE(SERVICEURL);
try
{
transport.call("http://tempuri.org/"+METHOD_NAME, envelope);
//getting the response from the webservice
Integer response = (Integer) envelope.getResponse();
if(response!=0)
{
openGaleryVideo();
}//end of if statement
}//end of try
catch(Exception exception)
{
exception.printStackTrace();
}//end of catch
}//end of onClick method
});//end of OnclickListener method
}//end of onCreate method
public void openGaleryVideo()
{
Intent intent=new Intent();
intent.setType("video/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Video"),SELECT_VIDEO);
}//end of openGaleryVideo method
public String getPath(Uri uri)
{
String[] projection = { MediaStore.Video.Media.DATA};
Cursor cursor = managedQuery(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}//end of getPath method
}//end of main
答案 0 :(得分:1)
也许Android类的AsyncTask可以提供帮助。
在doInBackground方法上发出WebService请求,并在postExecute方法上显示库。
<强>更新强> 将onclick方法内容替换为:
AsyncTask<String, Void, Integer> task = new AsyncTask<String, Void, Integer>(){
@Override
protected Integer doInBackground(String... params) {
// TODO Auto-generated method stub
//request code for Webservice
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
//sending the username to the webservice
request.addProperty("kullaniciAdi",username.getText().toString());
//sending the password to the webservice
request.addProperty("password",password.getText().toString());
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
//Putting the request in an envelope
envelope.setOutputSoapObject(request);
HttpTransportSE transport = new HttpTransportSE(SERVICEURL);
try
{
transport.call("http://tempuri.org/"+METHOD_NAME, envelope);
//getting the response from the webservice
return (Integer) envelope.getResponse();
}//end of try
catch(Exception exception)
{
exception.printStackTrace();
}//end of catch
return 0;
}
protected void onPostExecute(Integer result) {
if(result!=0)
{
openGaleryVideo();
}//end of if statement
};
};
答案 1 :(得分:0)
这是解决方案:
package com.isoft.uploader;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONObject;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class UploaderActivity extends Activity
{
//ArrayList<Response> WebData= new ArrayList<Response>();
public static final int SELECT_VIDEO=1;
public static final String TAG="UploadActivity";
String path="";
final String NAMESPACE = "http://tempuri.org/";
final String SERVICEURL = "http://192.168.10.177/androidws/isandroidws.asmx";
final String METHOD_NAME1="OzelVeriAlanlariniGetir";
final String METHOD_NAME="KullaniciGiris";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button enter=(Button)findViewById(R.id.Enter);
final EditText username=(EditText)findViewById(R.id.username);
final EditText password=(EditText)findViewById(R.id.password);
final AlertDialog ad=new AlertDialog.Builder(this).create();
enter.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
//request code for Webservice
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
//sending the username to the webservice
request.addProperty("kullaniciAdi",username.getText().toString());
//sending the password to the webservice
request.addProperty("password",password.getText().toString());
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
//Putting the request in an envelope
envelope.setOutputSoapObject(request);
HttpTransportSE transport = new HttpTransportSE(SERVICEURL);
Object response = null;
try
{
transport.call("http://tempuri.org/"+METHOD_NAME, envelope);
//getting the response from the webservice
response= envelope.getResponse();
}
catch(Exception exception)
{
exception.printStackTrace();
}//end of catch
if(response!=null && Integer.parseInt(response.toString()) != 0)
{
openGaleryVideo();
}
else
{
ad.setMessage("Lütfen Kullanıcı Adınızı ve Şifrenizi Kontrol Ediniz.");
ad.show();
}
}//end of onClick method
});//end of OnclickListener method
}//end of onCreate method
public void openGaleryVideo()
{
Intent intent=new Intent();
intent.setType("video/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Video"),SELECT_VIDEO);
}//end of openGaleryVideo method
public String getPath(Uri uri)
{
String[] projection = { MediaStore.Video.Media.DATA};
Cursor cursor = managedQuery(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}//end of getPath method
}//end of main