'2014/11'에 해당되는 글 3

  1. 2014.11.28 브라우저 방문기록, 북마크 읽어오기 (3)
  2. 2014.11.17 전원버튼 이벤트 감지하기
  3. 2014.11.17 홈버튼 이벤트 감지하기 (2)

펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO


1.구버전 안드로이드 기본브라우저 (약 S5 이전단말의 기본브라우저)


try {

String[] proj = new String[] { Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL};

String sel = Browser.BookmarkColumns.BOOKMARK + " = 1"; // 0 = history, 1 = bookmark

Cursor mCur = getContentResolver().query(Browser.BOOKMARKS_URI, proj, sel, null, null);

mCur.moveToFirst();

String title = "";

String url = "";


if (mCur.moveToFirst() && mCur.getCount() > 0) {

boolean cont = true;

while (mCur.isAfterLast() == false && cont) {

title = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.TITLE));

url = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.URL));

mCur.moveToNext();

      }


}

}

catch (Exception e) {

}



2. 크롬 브라우저


try {

String[] proj = new String[] { Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL, Browser.BookmarkColumns.DATE };

Uri uriCustom = Uri.parse("content://com.android.browser/bookmarks");

String sel = Browser.BookmarkColumns.BOOKMARK + " = 1"; // 0 = history, 1 = bookmark

Cursor mCur = getContentResolver().query(uriCustom, proj, sel, null, null);

mCur.moveToFirst();

String title = "";

String url = "";


if (mCur.moveToFirst() && mCur.getCount() > 0) {

boolean cont = true;

while (mCur.isAfterLast() == false && cont) {

title = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.TITLE));

url = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.URL));


        }

mCur.moveToNext();

      }


}

}

catch (Exception e) {

}


3. 최신단말의 안드로이드 S브라우저 (약 S5이후 단말에서 많이 사용하는것같음)


try {

String[] proj = new String[] { Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL, Browser.BookmarkColumns.DATE };

Uri uriCustom = Uri.parse("content://com.sec.android.app.sbrowser.browser/bookmarks");

String sel = Browser.BookmarkColumns.BOOKMARK + " = 1"; // 0 = history, 1 = bookmark

Cursor mCur = getContentResolver().query(uriCustom, proj, sel, null, null);

mCur.moveToFirst();

String title = "";

String url = "";


if (mCur.moveToFirst() && mCur.getCount() > 0) {

boolean cont = true;

while (mCur.isAfterLast() == false && cont) {

if (!TextUtils.isEmpty(url)) {

title = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.TITLE));

url = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.URL));


}

mCur.moveToNext();

      }


}

}

catch (Exception e) {

}



댓글을 달아 주세요

  1.  댓글주소  수정/삭제  댓글쓰기 질문있어요 2015.11.07 14:35

    SDK몇버전에서 사용하신건가요? browser클레스에 관련 함수들이 없네요
    안드로이드디벨로퍼 들어가봐도 삭제된 메소드라고만 적혀있고..
    다른데에서 해당기능을 하는게 있을꺼같은데.. 보안상없앤거같기도하고 찾기힘드네요 ㅠ,.ㅠ

  2.  댓글주소  수정/삭제  댓글쓰기 저도 질문있어요 2016.04.03 16:52

    빌드타겟 23에서는 방법이 없을까요 ?

Android/기본스킬 | Posted by 덩치 2014.11.17 17:19

전원버튼 이벤트 감지하기

펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO


IntentFilter powerFilter = new IntentFilter(Intent.ACTION_SCREEN_OFF);

registerReceiver(mPowerBroadcast, powerFilter);



BroadcastReceiver mPowerBroadcast = new BroadcastReceiver() {

@Override

public void onReceive(Context context, Intent intent) {

if(Intent.getAction().equals("android.intent.action.SCREEN_OFF") {

// 스크린이 꺼질때 이벤트

}

else if(Intent.getAction().equals("android.intent.action.SCREEN_ON") {

// 스크린이 켜질때 이벤트

}

else

return;

}


}


그리고 onDestroy 등에서

unregisterReceiver(mPowerBroadcast);

를 이용해 브로드캐스트를 종료한다.



댓글을 달아 주세요

Android/기본스킬 | Posted by 덩치 2014.11.17 17:12

홈버튼 이벤트 감지하기

펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO

@Override

protected void onUserLeaveHint() {

//여기서 감지

Log.d(TAG, "Home Button Touch");

super.onUserLeaveHint();

}


홈키 눌렀을때 작동되어야 하는 작업들을 위의 소스코드를 이용하여 처리할 수 있다.




댓글을 달아 주세요

  1.  댓글주소  수정/삭제  댓글쓰기 아데우스 2015.06.09 09:54

    100퍼센트 불가능입니다. 저 이벤트가 홈키때만 호출되는것이 아니라 여러 상황에 호출되기 때문에 예외처리를 추가해줘야해요 생명주기 순서를 따져서 홈키인지 아닌지를 판별해야합니다.

    •  댓글주소  수정/삭제 덩치 2015.06.10 18:10 신고

      좋은지적 감사합니다. 이 글을 참고하시는분들은 홈키를 판단하실때 생명주기가 홈키를 눌렀을때와 동일한 주기로 입력됐는지 확인하는 부분을 추가하시면 되겠습니다. 빠른 시일 내 업데이트 하겠습니다.