카테고리 없음2016. 11. 29. 22:21


[[ Lenovo K-3 Note 루팅을 하고 커스텀롬 설치로 한 발짝 다가가는 과정 중에 ]]



~~ !주의! 기기가 벽돌화나 무응답되는 등의 부작용 발생될 경우가 있을 수 있습니다. !주의! ~~

~~ !조심! IMEI 증발하는 사례가 있습니다.                             !조심! ~~



[ twrp 리커버리 설치(Stock 리커버리 교체) ]

:윈도우 7에서 아래 실패. 윈도우 10에서 아래 성공

1. minimal_adb_fastboot_v1.2 : 설치하면 관련 파일이 한 폴더에 담긴다

2. adb devices 

22 : 스마트폰을 usb로 컴터에 연결 후에 연결된 기기를 볼 수 있다.

22 : 스맛 화면에 usb디버깅 허락요청 대화상자가 뜨면 여기서 수락해준다.

3. adb reboot bootloader

33 :스마트폰이 리부팅되면서 검은 색 바탕의 아주 작은 흰 텍스트 몇 줄 뜨는 화면으로 바뀐다

4. fastboot devices

44 : 검은바탕글씨 부트로더가 실행된 화면에서 이전 내용을 확인할 수 있다.


fastboot oem unlock [ | Alternatively you can toggle the OEM UNLOCK switch in Developer Options.]

(fastboot oem device-info)

press [vol up key to unlock oem]

fastboot flash recovery recovery(<==파일 이름 twrp_3.0.3-0를 바꿈).img

fastboot reboot




FAILED (remote: download for partition 'recovery' is not allowed

==>Before applying that command you need to unlock bootloader by following command:

adb reboot bootloader

fastboot oem unlock

press vol up key to unlock oem



참고 : https://forum.xda-developers.com/k3-note/general/ufficial-thread-lenovo-k3-note-t3102997

Posted by 코드버무려
카테고리 없음2016. 11. 25. 19:01


myapp_T161212Mn1220.zip




Posted by 코드버무려
자바 Java2016. 11. 22. 19:08










텍스트 파일에 자료값을 쓰는 내용.

매번 프로젝트를 열어 해당 코드를 가져와서 사용하는 불편함을 줄이려고한다

블로그에 올려두고 필요할 때 복사해서 붙여넣고

상황에 맞추어 수정해서 사용할 예정이다.

앞으로 이와 같은 내용은 많이 쓰일 듯하다.






import java.io.BufferedWriter;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;



public class WriteRecentCoordinate {

private boolean writeWords(String sTextfile, StringBuilder sb) { // "f:\\AaaText.txt"

File file = new File(sTextfile);

BufferedWriter bw = null;

try{

            bw = new BufferedWriter(new FileWriter(file, false));

            

            bw.write(sb.toString());

            bw.flush();             

        } catch(Exception e){

            e.printStackTrace();

        } finally {

System.out.println("\n\n\nfinally {");

        try {

        if(bw != null)

        bw.close();

} catch (IOException e) {

e.printStackTrace();

System.out.println("} <<-- finally\n\n\n");

        }

return true;

}

public static void main(String[] args) {

WriteRecentCoordinate doSomething = new WriteRecentCoordinate();

StringBuilder sb = new StringBuilder() // "\r\n": window,  "\n": linus

.append("target ").append("true").append("\r\n")

.append("tarLatitude ").append("37.26389").append("\r\n")

.append("tarLongitude ").append("127.02861").append("\r\n")

.append("\r\n")

.append("radius ").append("450f").append("\r\n")

.append("alarmSound ").append("true").append("\r\n")

.append("alarmVibration ").append("true").append("\r\n")

.append("alarmNumber ").append("55").append("\r\n")

.append("alarmRingtone ").append("null").append("\r\n")

.append("followCurrent ").append("0");

if(doSomething.writeWords("f:\\AaaText.txt", sb) )

System.out.println("Process Done");

else

System.out.println("Process failed!");

}

}




.

'자바 Java' 카테고리의 다른 글

ReadRecentCoordinate  (0) 2015.09.22
오늘은 무슨 요일  (0) 2014.12.24
Thread interrupt  (0) 2014.12.05
입력 문자열에서 숫자를 뽑아 문자로 반환  (0) 2014.11.26
자바 환경 변수 설정 CLASSPATH, JAVA_HOME, Path  (0) 2014.07.24
Posted by 코드버무려
Android 안드로이드2016. 11. 8. 15:35

웹뷰에서 URL링크 클릭할 때 외부 브라우져를 검색하는 선택 대화상자가 뜬다.

이 것을 막으려면 어떻게 해야할까?


"shouldOverrideUrlLoading()를 두고 true를 리턴하면 된다"라고 많은 문서에서 잘 못 설명하고 있다.

setWebViewClient(new WebViewClient()); 한줄이면 끝이다. 더는 대화상자 나오지 않는다.


그럼 shouldOverrideUrlLoadig()는 뭘까?

우선 setWebViewClient(new OrginWebViewClient());와 같이 WebViewClient를 상속한 객체를 등록해준다.


명확하게 설명해주는 블로그나 사이트가 없다시피했다. 그래서 shouldOverrideUrlLoading API문서를 수차례 읽고 테스트하고 읽고를 반복했다. 수차례라고 하지만 며칠 보냈다. 그도 그럴것이 정확히 이해를 못하면 이 동작이나 저동작이 다 비슷해 보인다. 클레스 WebChromeClient과 클레스 WebViewClient 동작이 얼핏 비슷비슷하다.


shouldOverrideUrlLoading::

https://developer.android.com/reference/android/webkit/WebViewClient.html


정확히 짧게 설명한다.

shouldOverrideUrlLoading() 역할은 return 값으로 링크를 어떻게 처리할 까를 결정한다. true를 리턴하면 웹뷰를 포함하고 있는 앱이 처리한다. (위 API 레퍼런스에서) 호스트라고 일컷는 것이다. 쉽게 말해 내가 지금 만들고 있는 앱(== 호스트)이다. 더 파고 내려가면 해당 웹뷰를 보여주는 Activity(=== host)가 된다. false를 리턴하면 지금 WebView가 처리한다이다.


이 문구를 정확히 이해하면 그 다음은 고속도로이다.


  public class OrginWebViewClient extends WebViewClient {


  // rurl

  // shouldOverrideUrlLoading()함수를

        @SuppressWarnings("deprecation")

        @Override

        public boolean shouldOverrideUrlLoading(WebView view, String url) {

            if(IsDebugging) Log.d(TAG, ":: shouldOverrideUrlLoading(WebView view, String url)");

            view.loadUrl(url);

            return true;

        }


        @TargetApi(Build.VERSION_CODES.LOLLIPOP)

        @Override

        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {

            if(IsDebugging) Log.d(TAG, ":: shouldOverrideUrlLoading(WebView view, WebResourceRequest request)");

            final Uri uri = request.getUrl();

            final String host = uri.getHost();

            final String scheme = uri.getScheme();

            view.loadUrl(uri.toString());

            return true;

        }


        @Override

        public void onPageStarted(WebView view, String url, Bitmap favicon) {

            if(IsDebugging) Log.d(TAG, "onPageStarted()");

            super.onPageStarted(view, url, favicon);

        }

    }



참고:

http://stackoverflow.com/questions/36484074/is-shouldoverrideurlloading-really-deprecated-what-can-i-use-instead

http://stackoverflow.com/questions/27009995/android-webview-links-to-same-window-with-target-blank-to-open-new-window

Posted by 코드버무려
Android 안드로이드2016. 10. 29. 15:15


안드로이드스튜디오 1.5.2를 사용 중이다. 언젠가 최신 SDK로 업데이트를 했다.

새로운 프로젝트를 만들고 컴파일을 했고 평소에는 당연하게 나오던 결과가 없었다.앱이 뜨다가 멈추고 에로를 토해냈다. 

FATAL EXCEPTION: main Process: com.jkrtscrptstdy.tstrun, PID: 9097 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapplication.tstrun/com.myapplication.MainActivity}: java.lang.IllegalStateException: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2202) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2252) at android.app.ActivityThread.access$800(ActivityThread.java:139) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5103) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.IllegalStateException: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat. at android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:723) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:190) at android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:77) at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:127) at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:147) at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:27) at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:50) at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:201) at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:181) at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:521) at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:71) at com.myapplication.MainActivity.onCreate(MainActivity.java:16) at android.app.Activity.performCreate(Activity.java:5275) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2166) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2252)  at android.app.ActivityThread.access$800(ActivityThread.java:139)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:136)  at android.app.ActivityThread.main(ActivityThread.java:5103)  at java.lang.reflect.Method.invokeNative(Native Method)  at java.lang.reflect.Method.invoke(Method.java:515)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)  at dalvik.system.NativeStart.main(Native Method) 


java.lang.IllegalStateException: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat.

평소에 못 보던 에러였다.

벡터Drawable를 본격 사용하는 안드로이드 7.xxx 누가 SDK로 업하고 나오는 에러가 아닌가..???? 생각된다.


Gradle plugin 2.0 이전 버젼을 사용하는 것이라 해결책은 아래 두 가지를 추가하면 된다. 

defaultConfig {
....

generatedDensities = []
}


aaptOptions {
additionalParameters "--no-version-vectors"
}


최종 build.gradle는 아래와 같다.

apply plugin: 'com.android.application'

android {
compileSdkVersion 24
buildToolsVersion "24.0.3"

defaultConfig {
applicationId "com.myapplication"
minSdkVersion 14
targetSdkVersion 24
versionCode 1
versionName "1.0000"

generatedDensities = []
}

aaptOptions {
additionalParameters "--no-version-vectors"
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
}


참고: http://stackoverflow.com/questions/38143867/why-this-app-has-been-built-with-an-incorrect-configuration-error-occured-in-s




Posted by 코드버무려