정소현 졸업논문 코드 6월 3일 - 등록 및 전송부분

Retired DISLab
이동: 둘러보기, 찾기

BasicInfo.java

가장 기본이 되는 필요한 정보들을 저장하는 클래스

package gcm.remote.message;
 
public class BasicInfo { 	
 
	public static final String SENDER_ID = "508815197180";
	public static String REGI_ID = "";
 
        //id1, id2는 시연을 위해 registration id를 직접 입력함
	public static String id1 = "APA91bHxsC2vhfJirwC2LTxPV7FBoNIV7NrdKAP2TqW3ra0RsZ1SAO-z3PAAcng6QE_7yGwWgMx9JLz8Zts3Zd5YLOaunlMfcq9k_7wu9fthI7Cp4GG6agg_S9aCvIcY0-BXNxl-zoYEWeH77Ojh_vtMFCSj92W5Jg";
	public static String id2 = "APA91bGq0ycbxx948jZYp5MQnVwCZ-qX2mdm5F4lZNdkGbWRBrriCcFTdEq32h-titBEJlb53IprP0959CuZhe6NswjRlewILfW4o3O43E7ysBAlkQxKTVKsW4IBs46_RxSkrxP6y0dglZZvgJth0V0V2ZjMiYyOYA";	
}


MainActivity.java

  • Main.jpg

GCM 서버에 기기를 등록하고 registration id를 발급받는 부분 REGISTER 버튼을 누르면 Sending 클래스로 넘어감

package gcm.remote.message;
 
import static gcm.remote.message.BasicInfo.REGI_ID;
import static gcm.remote.message.BasicInfo.SENDER_ID;
 
import java.io.IOException;
 
import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
 
import com.google.android.gms.gcm.GoogleCloudMessaging;
 
public class MainActivity extends Activity {
 
	public static final String TAG = "REGISTRATION";
 
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
 
		register();
 
		Button registerBtn = (Button) findViewById(R.id.registerBtn);
		registerBtn.setOnClickListener(new Button.OnClickListener() {
			public void onClick(View v) {
				Intent intent = new Intent(MainActivity.this, Sending.class);
				startActivity(intent);
			}
		});
	}
 
	protected void onDestroy() {
		super.onDestroy();
	}
 
	void register() {
		new AsyncTask<Void, String, String>() {
			@Override
			protected String doInBackground(Void... params) {
 
				GoogleCloudMessaging gcm = GoogleCloudMessaging
						.getInstance(getApplicationContext());
 
				try {
					REGI_ID = gcm.register(SENDER_ID);
					Log.d(TAG, REGI_ID);
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
					Log.e(TAG, e.toString());
				}
				gcm.close();
 
				return null;
			}
		}.execute(null, null, null);
	}
}


Sending.java

  • Sending.jpg

버튼을 누르면 인텐트를 전송하는 클래스 텍스트, 웹, 음악, 동영상, 무음, 지도 등 6가지 기능 구현

package gcm.remote.message;
 
import static gcm.remote.message.BasicInfo.id1;
import static gcm.remote.message.BasicInfo.id2;
import gcm.remote.intent.RemoteContext;
import gcm.remote.intent.RemoteIntent;
 
import java.util.ArrayList;
import java.util.List;
 
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.location.Location;
import android.location.LocationManager;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
 
public class Sending extends Activity {
 
	private Button msgBtn, urlBtn, musicBtn, quietBtn, videoBtn, mapBtn;
	private EditText msgEt, urlEt, musicEt, videoEt, timeEt;
 
	List<String> users = null;
 
	String musicPath = "file:///sdcard/Music/";
	String videoPath = "file:///sdcard/Movies/";
 
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.sending2);
 
		users = new ArrayList<String>();
		users.add(id1);
		users.add(id2);
 
		msgBtn = (Button) findViewById(R.id.msgBtn);
		msgBtn.setOnClickListener(new Button.OnClickListener() {
			@Override
			public void onClick(View v) {
				sendMessage();
				msgEt.setText("");
			}
		});
 
		urlBtn = (Button) findViewById(R.id.urlBtn);
		urlBtn.setOnClickListener(new Button.OnClickListener() {
			@Override
			public void onClick(View v) {
				startInternet();
				urlEt.setText("");
			}
		});
 
		musicBtn = (Button) findViewById(R.id.musicBtn);
		musicBtn.setOnClickListener(new Button.OnClickListener() {
			@Override
			public void onClick(View v) {
				playMusic();
				musicEt.setText("");
			}
		});
 
		videoBtn = (Button) findViewById(R.id.videoBtn);
		videoBtn.setOnClickListener(new Button.OnClickListener() {
			@Override
			public void onClick(View v) {
				//playVideo();
				videoTest();
				videoEt.setText("");
				timeEt.setText("");
			}
		});
 
		quietBtn = (Button) findViewById(R.id.quietBtn);
		quietBtn.setOnClickListener(new Button.OnClickListener() {
			@Override
			public void onClick(View v) {
				beQuiet();
			}
		});
 
		mapBtn = (Button) findViewById(R.id.mapBtn);
		mapBtn.setOnClickListener(new Button.OnClickListener() {
			@Override
			public void onClick(View v) {
				showMap();
			}
		});
	}
 
	void sendMessage() {
		msgEt = (EditText) findViewById(R.id.msgEt);
		String msg = msgEt.getText().toString();
 
		// Intent intent = new Intent();
		// intent.putExtra("msg", msg);
 
		ComponentName compName = new ComponentName("com.example.intenttest",
				"com.example.intenttest.TextActivity");
		Intent intent = new Intent(Intent.ACTION_MAIN);
		intent.addCategory(Intent.CATEGORY_LAUNCHER);
		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		intent.putExtra("msg", msg);
		intent.setComponent(compName);
		// startActivity(intent);
 
		RemoteIntent remoteIntent = new RemoteIntent(users, intent);
		RemoteContext remoteContext = RemoteContext.getContext();
		remoteContext.sendBroadcast(remoteIntent);
	}
 
	void startInternet() {
		urlEt = (EditText) findViewById(R.id.urlEt);
		String url = urlEt.getText().toString();
 
		url = "http://" + url;
 
		Intent intent = new Intent();
		intent.setAction(Intent.ACTION_VIEW);
		intent.setData(Uri.parse(url));
		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 
		RemoteIntent remoteIntent = new RemoteIntent(users, intent);
		RemoteContext remoteContext = new RemoteContext();
		remoteContext.sendBroadcast(remoteIntent);
 
	}
 
	void playMusic() {
		musicEt = (EditText) findViewById(R.id.musicEt);
		String music = musicEt.getText().toString();
		music = music + ".mp3";
		Intent intent = new Intent();
		intent.setAction(Intent.ACTION_VIEW);
 
		Uri uri = Uri.parse(musicPath + music);
		intent.setDataAndType(uri, "audio/*");
		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 
		RemoteIntent remoteIntent = new RemoteIntent(users, intent);
		RemoteContext remoteContext = new RemoteContext();
		remoteContext.sendBroadcast(remoteIntent);
	}
 
	void playVideo() {
		videoEt = (EditText) findViewById(R.id.videoEt);
		timeEt = (EditText) findViewById(R.id.timeEt);
		String video = videoEt.getText().toString();
		video = video + ".mp4";
		String time = timeEt.getText().toString();
 
		Intent intent = new Intent();
		intent.setAction(Intent.ACTION_VIEW);
		Uri uri = Uri.parse(videoPath + video);
		intent.setDataAndType(uri, "video/*");
		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 
		if (!time.equals("")) {
			intent.putExtra("time", time);
		}
 
		RemoteIntent remoteIntent = new RemoteIntent(users, intent);
		RemoteContext remoteContext = new RemoteContext();
		remoteContext.sendBroadcast(remoteIntent);
	}
 
	void videoTest() {
 
		videoEt = (EditText) findViewById(R.id.videoEt);
		timeEt = (EditText) findViewById(R.id.timeEt);
		String video = videoEt.getText().toString();
		video = video + ".mp4";
		String time = timeEt.getText().toString();
 
		ComponentName compName = new ComponentName("com.example.intenttest",
				"com.example.intenttest.VideoActivity");
		Intent intent = new Intent(Intent.ACTION_MAIN);
		intent.addCategory(Intent.CATEGORY_LAUNCHER);
		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		Uri uri = Uri.parse(videoPath + video);
		intent.setDataAndType(uri, "video/*");
		intent.setComponent(compName);
 
		if (!time.equals("")) {
			intent.putExtra("time", time);
		}
 
		RemoteIntent remoteIntent = new RemoteIntent(users, intent);
		RemoteContext remoteContext = new RemoteContext();
		remoteContext.sendBroadcast(remoteIntent);
	}
 
	void beQuiet() {
		Intent intent = new Intent();
		intent.setAction("MUTE");
 
		RemoteIntent remoteIntent = new RemoteIntent(users, intent);
		RemoteContext remoteContext = new RemoteContext();
		remoteContext.sendBroadcast(remoteIntent);
	}
 
	void showMap() {
		Context context = getBaseContext();
		LocationManager lm = (LocationManager) context
				.getSystemService(Context.LOCATION_SERVICE);
		Location location = lm
				.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
		double latitude = location.getLatitude();
		double longitude = location.getLongitude();
 
		Uri uri = Uri.parse("geo:" + latitude + "," + longitude);
		Intent intent = new Intent(android.content.Intent.ACTION_VIEW, uri);
		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 
		RemoteIntent remoteIntent = new RemoteIntent(users, intent);
		RemoteContext remoteContext = new RemoteContext();
		remoteContext.sendBroadcast(remoteIntent);
	}
}
개인 도구
이름공간
변수
행위
둘러보기
구성원
연구
연구실
기타
도구모음
인쇄/내보내기