ラベル Android の投稿を表示しています。 すべての投稿を表示
ラベル Android の投稿を表示しています。 すべての投稿を表示

2016年5月7日土曜日

Chrome で位置情報が取得できなくなりました

Chromeで位置情報(GPS)がとれなくなりました


GW中に 一部のWEBサービスで位置情報がとれずいろいろ残念なことになりました
原因は Chrome V50 のアップデート
https://developers.google.com/web/updates/2016/04/geolocation-on-secure-contexts-only

どうやら 非SSLページにおいては
HTML5 の navigator.geolocation が使えなくなったようです

あくまで 非SSLページでの話なので サイト全体ではなく使用ページのみ SSL化すればいいみたいです

SSL化といえども証明書代馬鹿になりませんよね
一応無料のSSL証明書も以下から取得できます

https://letsencrypt.org/

SSL証明書とかつらいひとは 以下のようにすればとりあえず開発はできます
(localhostは証明書なしでいいそうです)
chrome.exeのパス --user-data-dir=ユーザーデータディレクトリ --unsafely-treat-insecure-origin-as-secure="http://ドメイン"

例)
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir=C:\Temp\Chrome --unsafely-treat-insecure-origin-as-secure="http://example.com"
batファイルにしておくと良いでしょう



user-data-dir

指定しないとダメなようです
一人用PCなら例のとおりでいいですが共有の場合は C:\ユーザー下のどこかが良いでしょう

2012年6月17日日曜日

アンドロイド で メニューを設定する

アンドロイドでメニューをつくる
↓こんなやつ
アンドロイドメニュー

//ライブラリはこれ
import android.view.Menu;
import android.view.MenuItem;


//メニューの作成
boolean onCreateOptionsMenu(Menu menu){

super.onCreateOptionsMenu(menu);

//メニューを追加する
MenuItem hogehoge = menu.add(0, MENU_ID1, 0, R.string.menu1);
//アイコンをセット
hogehoge.setIcon(android.R.drawable.ic_menu_info_details);

//増やす場合は
//上の追加と アイコンセットを繰り返す
//もちろん変数名変えてね!

// android.R.drawable の中にシステム画像が入ってます



return true;
}

EditText の 幅

EditTextはそのままだと
入力し続けるとテキストボックスが伸びていく・・・

android:Scrollhorizontally を true

にすると拡張せずに中の文字がスクロールする

android のマネージャー

各種マネージャーメモ

Activity manager
アプリのライフサイクルを管理
基本的にはこいつを使う

Window manger
ウィンドウを管理

Content manager
他のアプリとデータをやりとりするための口

View sytem


Notification manager
上部のステータスバーに通知を出すための口

Package manger
インストール済みパッケージを管理

Telephony manager
電話機能を管理するための機能
SIMなんかもここにいるぽい

Resource manager
リソースマネージャー
端末の型番なんかはここ?

Location manager
位置情報系

Android エミュレーターの大きさを変える

-scale で変更
大体 0.5?0.7で使ってます。

TableLayout の で複数行にまたがる

Layout XMLで TableLayoutを使用した際

Widget単位で行が作成される



複数にまたがるWidgetは android:layout_span="○" としてまたぐ数を入れる




android:id="@+id/TableRow01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:singleLine="true"
android:scrollHorizontally="true"
android:text="http://"
android:id="@+id/INPUTURL"
android:layout_span="2">



こんな感じ


Android で タッチを検出

android.view.MotionEvent をインポートし
Activity で onTouchEvent を オーバーライド

getAction() で
ACTION_DOWN:タッチされた
ACTION_MOVE:動いた
ACTION_UP:指?が離れた

getX() , getY() で 座標が取得できる

なので
ACTION_DOWN の XY と ACTION_UP の XY がわかればフリック操作のようなものもできそう
getEventTime() で 時間が取れるので DOWN と UPの 時間と XY の差がわかれば速度も出せますね

Xperia Arc っぽいユーザーエージェント

Xperia Arc っぽいユーザーエージェントを見つけた

Mozilla/5.0 (Linux; U; Android 2.3.2; ja-jp; SonyEricssonXXXXXXXXXX Build/3.0.C.0.72) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

Intent を 起動する

Intent起動の返り値がいらない場合


Intent intent = new Intent(getApplicationContext(),xxxx.class);
startActivity(intent);

いる場合は

startActivity(intent);


startactivityforresult(intent)

とする

このとき呼び出されるほうは


Intent intent_called = new intent();
setResult(RESULT_OK, intent_called);
finish();

のような形で返り値を返してあげる

DoCoMo T-01C, au IS04 でadb接続 MacOSX編

T-01C/IS04 共通
ユーザーディレクトリの .android/adb_usb.iniに
0x930
と一行書くだけ (いわゆるベンダーコードですな!)
空行スペース等は一切なし

保存したら
adb kill-server
adb start-server

[端末接続]

adb devices

を実行して
認識できてるか確認

東日本地震

Android マーケットといえば Googleチェックアウト!

http://www.google.co.jp/intl/ja/crisisresponse/japanquake2011.html

Googleチェックアウトで募金受け付けてます!
Androidユーザーのみなさん是非支援を!

Android で 画像のフェードアウト

使えそうなコードをチョコチョコ貼り付けしだしてみます・・・

まずは Java

ImageView image = (ImageView)findViewById(R.id.image);
fadeout = AnimationUtils.loadAnimation(this,R.anim.image_fadeout);
fadeout.setAnimationListener(new AnimationListener(){

@Override
public void onAnimationEnd(Animation animation) {
// アニメーションの最後は完全にimageを消し去るよ?
image.setVisibility(View.GONE);
}

@Override
public void onAnimationRepeat(Animation animation) {
}

@Override
public void onAnimationStart(Animation animation) {
}
});

fadeout_image = new Runnable(){
public void run(){
image.startAnimation(fadeout);
}
};

//3秒後にアニメーション開始
handler.postDelayed(fadeout_image,3000);


つづいて

fadeout = AnimationUtils.loadAnimation(this,R.anim.image_fadeout);

で定義してるアニメーション

res/anim/image_fadeout.xml

を配置XMLに

xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="2000"
android:interpolator="@android:anim/linear_interpolator"
/>

を入れるだけ



alpahは透明処理(厳密には違うけど・・・)

fromAlpha = 1.0 ではっきりくっきり見せる (アニメーションの開始)

toAlpha = 0.0 でまったく見えなくする

はっきりくっきり => まったく見えなくするのを duration 2000msec かけて実行するよ?

このときの動き(interpolator)はlinear_interpolator等速だよ?

ということです



以上!

Andoid で カメラのフラッシュを使う 標準編

Android で カメラのフラッシュを使って懐中電灯アプリを作ってみた

要所:どうやってカメラのフラッシュを点灯させるか

まずManifest





続いてJava

//カメラAPIに接続
mCamera = Camera.open();
//カメラで設定されている初期値を読み込み
cp = mCamera.getParameters();
//フラッシュ点灯設定
cp.setFlashMode(Camera.Parameters.FLASH_MODE_ON);
//設定を適用
mCamera.setParameters(cp);

これで点灯

OFFにするときは

cp.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);

にするだけ


以上

Andoid で カメラのフラッシュを使う Sharp端末編

IS03とか005SHとかでフラッシュが点灯しないという報告があったので調査してみました。



どうやら専用ライブラリがあるらしい

https://sh-dev.sharp.co.jp/android/modules/sdk/index.php?/sdk

からSDKをダウンロードしてBuild Target をSharp Addonにする

まずManifestに



各種インテント系....


でSharpハードウェアライブラリを読み込む

もちろん





も忘れずに



ここから味噌

FlashLight mFlashLight = new FlashLight();
mFlashLight.setFlashLightOn(FlashLight.LIGHT_COLOR_WHITE);

で点灯できるはず

FlashLight.LIGHT_COLOR_WHITE で白色

FlashLight.LIGHT_COLOR_RED で赤色

が点灯できる模様


MapViewでItemizedOverlayでアイテムが設定されていないとNullpointer Exceptionが発生

バグのせいで徹夜しました・・・

スタート&ゴールをMapViewで表示しようとして引っかかったAndroidのバグ



スタート、ゴールをItemizedOverlayで MapViewに表示

ゴール地点が未設定状態でMapをタッチすると ヌルポするので調べてみた


結果:Androidのバグ

Issue:2035 に登録されてました。

Issue 2035 - android - NullPointerException when scrolling through a MapView with an ItemizedOverlay with no OverlayItems



回避方法:

ItemizedOverlay の OnCreate で populate を発行する

こんな感じ



public class FlagItemizedOverlay extends ItemizedOverlay {
public FlagItemizedOverlay(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
populate();
}
以下略・・・
}