안드로이드는 추가된 어카운트에 동기화 기능을 추가하기 아주 쉬운 Sync Adapter 인터페이스를 제공하고 있다.


그 구현하는 방법도 그렇게 어렵지 않게, 서비스 1개, AndroidManifest meta 정의 1개, xml 정의 1개로 기본적인 동기화 서비스를 제공할수 있도록 되어있다.


물론 해당 계정에 대한 인증같은 부분은 따로 처리를 해주어야 하지만, 해당 계정의 특정 authority(동기화 항목)에 대한 동기화는 아래 와 같은 세가지를 구현하면 기본적인 준비가 되게 된다.


1.Sync Adapter 정의 xml 추가

<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
    android:contentAuthority="com.android.contacts"
    android:accountType="[계정타입,예를 들면 com.google 같은것]"
    android:supportsUploading="[업로드지원여부] true"
/>


2.Sync Adapter Service 구현

public class SyncService extends Service {

	@Override
	public void onCreate() {			
		
	}

	@Override
	public IBinder onBind(Intent intent) {
		return new SyncAdapter(getApplicationContext(), true).getSyncAdapterBinder();
	}
	
        // Sync Adapter
	public static class SyncAdapter extends AbstractThreadedSyncAdapter {	
	
		public SyncAdapter(Context context, boolean autoInitialize) {
			super(context, autoInitialize);			
		}	
	
		@Override
		public void onPerformSync(Account account, Bundle extras, String authority, ContentProviderClient provider, SyncResult syncResult) {				
			// Sync 가 실행될때 할일들
		}
	
		@Override
		public void onSyncCanceled() {
			super.onSyncCanceled();	
		       // Sync가 취소 될때 할일들
		}
	}
}


3.Android Manifest 수정


            
                
            

            
     


블로그 이미지

rekun,ekun 커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

아주 아주 오래전 간단한 서비스를 하는 어플을 하나 만들었는데, 어플이 웹과 연동도 되어야 하고, 주기적으로 정보도 갱신을 해야되는데 어플에서는 네트워크 비용이 최대한 들어가지 않도록 설계를 해야 했었다.


그래서 고민하고 고안한 방법이, 서비스를 제공하는 어플은 단지 별도로 제작한 웹에서 정보를 읽어만 오고, 해당 웹에 정보를 채워넣기 위해서 웹앱을 하나 만들어서 주기적으로 어플에서 로딩만 하게 하면, 모든 처리는 서버내에서 이루어지게 되므로, 스마트폰에서는 별도의 추가적인 네트워크가 많이 발생하지 않게 되었다.


일단 주기적으로 특정한 웹페이지를 계속해서 로딩하는 방법은 여러가지가 있지만 아주 간단하게, 서비스 하나와 타이머로 스마트폰이 켜져있고 네트워크가 연결되어있는한 계속해서 실행할수 있다.


코드는 아래와 같이 아주 간단하게 만들어주면 된다.



public class Scheduler extends Service {
	private String TAG = "Scheduler";
	private static final String url = "[웹페이지주소]";
	private static final long delta = 30 * 60 * 1000; // 30분마다 한번

	@Override
	public void onCreate() {
		

	}

	@Override
	public int onStartCommand(final Intent intent, int flags, int startId) {
		super.onStartCommand(intent, flags, startId);

		start();
		return START_STICKY;  // 이 서비스는 불멸이다.

	}

	private void start() {

		Timer timer = new Timer();
		
		timer.schedule(new TimerTask() {
			public void run() {
				URL obj;
				try {
					obj = new URL(url);
					HttpURLConnection conn = (HttpURLConnection) obj.openConnection();

					BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
					String inputLine;

					while ((inputLine = in.readLine()) != null) {
						Log.v(TAG, inputLine);
					}
					in.close();
				} catch (MalformedURLException e) {					
					e.printStackTrace();
				} catch (IOException e) {					
					e.printStackTrace();
				}
			}
		}, 0, delta);
	}

	@Override
	public IBinder onBind(Intent arg0) {		
		return null;
	}
}
블로그 이미지

rekun,ekun 커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?



넥서스 7 2세대는 못찍고.. 그걸 넣을 케이스를 따로 구매해서 그 케이스만 찍었음..



집에 아이패드2도 있는데, 같은 게임(아스팔트 에어폰)을 설치해서 돌려봤는데.. 넥서스7 2세대가 더 잘돌아간다.. 뭐 물론 몇년 전에 나온 제품과 비교한다는것 자체가 좀 불공정하긴 하지만... 안드로이드 탭 제품은 안살려고 했는데.. 이 제품은 아주 만족이다...


나는 전화기도 그렇고, 탭도 그렇고 ... 제조사의 제품이 아닌 순정 제품이 좋드라~~~ 안무겁고...


강추천!!!


블로그 이미지

rekun,ekun 커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

최근에 만드는 앱들은 모두 아들이 가지고 놀기 위한 앱들이다...


얼마전에 Glass Harp 연주 동영상을 같이 보고 있었는데, 아들이 "아빠, 이거 어디서 나는소리야??" 하고 관심을 보여서...


Glass Harp의 샘플을 직접 구해서.. 일일이 주파수를 추출해서 3,4,5 옥타브의 음원 세트를 만들었는데..


3옥타브는 휴대폰에서는 아무리 재생해도 잘 들리지가 않아서... 그냥 대충 만들어올렸는데..


올린지 하루만에 ㅠ.ㅠ 별점 1 ... 


역시 대충 만든앱은 누가 봐도 별점 1....


그래서 앱자체를 아예 제거해버리고 새로 만들어서 올렸다.


아이가 쓰기 쉽게... 한글도 넣고... 그동안 너무 무성의 했던듯.... 사실 아들이 아직 한글은 모르고 A,B,C를 더 잘알아서...


https://play.google.com/store/apps/details?id=com.hopeisagoodthing.glasspiano&feature=more_from_developer#?t=W251bGwsMSwxLDEwMiwiY29tLmhvcGVpc2Fnb29kdGhpbmcuZ2xhc3NwaWFubyJd





블로그 이미지

rekun,ekun 커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

구글 X폰.

놀고 2012.12.23 18:26

구글이 안드로이드 단말을 직접 제조한다는 뉴스가 올라와서 시끄러운데..


뭐 놀랄일도 아니다.


구글이 원하는것은 스마트폰을 팔아서 돈을 벌자도 아니고,


플래폼을 팔아서 돈을 벌자도 아니고..


구글 서비스(검색,광고)가 올라가는 디바이스를 최대한 많이 공급하자가 목표이다.


여러 넥서스 시리즈들을 여러 다른 제조사들과 같이 한 이유는 각 제조사들이 안드로이드 단말을 잘 찍어내줘야 단기간에 안드로이드 플래폼이 대중화 될거니까 ... 그런것이고..


뭐 이제 얼마 안있으면 안드로이드 단말은 진짜 공짜!! 시대가 곧 올것 같다..


자연스레 아이폰 가격도 내려가길 살포시 기대하지만... PC가격이 내렸다고 해서 맥킨토시 가격이 내리지 않은것 처럼...


아이폰은 그닥 가격이 내려가지는 않을것 같다... ㅠ.ㅠ


http://online.wsj.com/article_email/SB10001424127887324731304578191711598368942-lMyQjAxMTAyMDIwMTEyNDEyWj.html

'놀고' 카테고리의 다른 글

이게 진짜야???  (0) 2012.12.23
윤봉길 의사 상하이 의거 실제 동영상, 그리고 왜곡된 내용들..  (0) 2012.12.23
구글 X폰.  (0) 2012.12.23
2737년만에 한번 찍을 수 있는 사진  (0) 2012.12.23
7x13=28  (0) 2012.12.18
1루수가 누구야..  (0) 2012.12.18
블로그 이미지

rekun,ekun 커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?