본문 바로가기

android tech.

(27)
회전 이동 int dX = targetX - centerX; int dY = targetY - centerY;float radian = (float)Math.atan2(dY, dX); moveX = (int)(centerX + r * Math.cos(radian)); moveY = (int)(centerY + r * Math.sin(radian));
두 점의 거리 int dX = targetX - centerX; int dY = targetY - centerY; int distance = (int)Math.sqrt(Math.pow(Math.abs(dX), 2) + Math.pow(Math.abs(dY), 2));
enum 활용 public enum TestEnum {TEST_0(0, "text 0", 12),TEST_1(1, "text 1", 34)),TEST_2(2, "text 2", 56) private final int value0;private final String value1;private final int value2; TestEnum(int v0, String v1, int v2) {value0 = v0;value1 = v1;value2 = v2;} public int getValue0( ) {return value0;} public String getValue1( ) {return value1} public int getValue2( ) {return value2;} } ... TestEnum test0 = T..
파일 이어받기 private String downloadFile(String urlString, String savePath) { URL url; InputStream inputStream; OutputStream outputStream; HttpURLConnection con; long fileSize = 0; long remains = 0; long fileLength = 0; try { File file = new File(savePath); if(!file.exists()) { file.createNewFile(); } RandomAccessFile output = new RandomAccessFile( file.getAbsolutePath(), "rw"); fileSize = output.length(); o..
Https 및 언어에 따라 Json 다운로드 public static String downloadUrl(String urlString, String locale) throws IOException { InputStream result = null; Writer writer = null; URL url = new URL(urlString); setTrust(); HttpsURLConnection httpsConn = (HttpsURLConnection)url.openConnection(); httpsConn.setHostnameVerifier(new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession session) { return true; } }); Ht..
가속 센서와 자기 센서로 회전 구하기 다음 처럼 구현 public class DeviceSensorManager implements SensorEventListener { private SensorManager sensorManager; private Sensor magneticSensor; private Sensor accelerometerSensor; private final float[] rotationMatrix = new float[16]; private float[] valuesMagnet = new float[3]; private float[] valuesAccel = new float[3]; private float[] orientation = new float[3]; public DeviceSensorManager(Conte..
Beacon 연동 BluetoothAdapter.LeScanCallback 인터페이스를 implements @Override public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord) { String address = device.getAddress(); String name = device.getName(); int batteryLevel = Integer.valueOf(scanRecord[30]); } 스캔 시작하면 비콘 신호 callback으로 들어옴. BluetoothAdapter.getDefaultAdapter().startLeScan(BluetoothAdapter.LeScanCallback); 중지는 이렇게. BluetoothAdapter..
Obb 파일 다운로드 구글 플레이에서 자동으로 다운로드 된다. 다운로드가 완료되지않아 앱 실행 시 다운로드 시켜야할 경우 다음과 같이 구현. String apkName = Helpers.getExpansionAPKFileName(this, true, BuildConfig.VERSION_CODE); boolean hasFile = Helpers.doesFileExist(this, apkName, 130712253L, false); if(hasFile) { } else { Intent intent = getIntent(); Intent notiIntent = new Intent(this, getClass()); notiIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_AC..