タグ: android

  • 新アプリをリリースしました。 – Android

    新アプリをリリースしました。 – Android

    新しいアプリをリリースしました。

    パスリス – PasLis
    詳細およびダウンロードはGoogle Playのページをご覧ください。

    Android用アプリです。
    パスワードを簡単に作成することができます。
    大文字、小文字、数字、記号を 使う・使わない が指定できます。
    それと、パスワードの長さや作成する個数も指定できます。
    メールなど他のアプリに転送するシェア機能もあります。

    お気軽にお試しください。

    ご意見、ご要望などありましたらお気軽にどうぞ。

  • Fragmentへの対応 – android

    スマホ向けにアプリを作って、

    ふとタブレットで開いてみると、残念なレイアウトになっていたり…

    そういうことがないように、Fragment機能を活用してアプリを作るための参考書の紹介です。

    Support packageを使って Android-1.6 から対応させる記述もあって助かります。

  • Eclipse(Juno)エディタでの不具合

    Eclipse(Juno)の不具合、こちらの記事で助かりました。
    http://frmmpgit.blog.fc2.com/blog-entry-133.html

    例えば複数のXMLファイルを開いて編集しようと Copy & Paste すると、
    エディタの裏側に隠れているファイル(コピー元)が書き換わってしまう状況でした。

    そこで上の記事に倣って”XML Editor”をデフォルトに設定します。

    また”Android Common XML Editor”を削除する場合でも、後で[Add…]ボタンで
    元に戻すことができます。

    ここで”XML Editor”をデフォルトに設定しただけではXMLファイルの編集で
    “Android Common XML Editor”が立ち上がってしまうようですので、
    編集したいXMLファイルを右クリックして、Open Withで”XML Editor”を
    選ぶと次からは”XML Editor”で編集できるようになります。

  • Androidのテストプロジェクト – JUnit test

    Androidのテストプロジェクトを試していたところコンストラクタのところで警告が出ました。

    public class MainActivityTest extends ActivityInstrumentationTestCase2 {
    
    	public MainActivityTest() {
    		super("package.name.hogehoge", MainActivity.class);
    		// TODO Auto-generated constructor stub
    	}
    
    

    Referenceを調べてみたところ、パッケージ名を指定するコンストラクタがdeprecatedになっていました。
    ActivityInstrumentationTestCase2
    ということで、下記のように修正。

    public class MainActivityTest extends ActivityInstrumentationTestCase2 {
    
    	public MainActivityTest() {
    		super(MainActivity.class);
    		// TODO Auto-generated constructor stub
    	}
    

    以上です。

  • Lintチェックのエラーと旧バージョンのサポート

    以下、自分用の備忘録として
    Lint API Check
    の記事を読みながら簡単にまとめたものです。

    Androidアプリ開発において、API 4(Android 1.6) までサポートする際に、ターゲットのビルドバージョンによって呼び出すAPIを切り替えたい場合があります。
    しかし、マニフェストが、

    <uses-sdk android:minSdkVersion="4" />

    となっているので、API 4では対応していないAPIを呼び出すところで次のようなLintチェックのエラーになってしまいます。

    Call requires API level 11 (current min is 4):

    そのような場合に、@TargetApi というアノテーション(annotation)をつけることで回避できます。

    @TargetApi(11)
    @Override
    public void onBuildHeaders(List<Header> target) {
        loadHeadersFromResource(R.xml.hogehoge, target);
        }
    
  • Androidのデバッグでソースが読めない – eclipse

    Androidのデバッグでソースが読めない – eclipse

    Androidのアプリ開発において、eclipseでステップ実行しようとしてソースが開けない場合。
    (Source not found となってしまう)

    上記の [Attach source] をクリックしてソースを置いているフォルダのパスを指定します。
    例えば、次のようにします。

    で、そうなるまえにソースのパスをセットしておく方法。

    [Project] -> [Properties] を開きます。

    次に [Java Build Path] -> [Libraries] を開いてターゲットの android.jar を展開します。

    そして [Source attachment] が (None) になっていれば、[Edit…]をクリックして先ほどと同様にソースのフォルダを設定します。

    あるいは、Package Explorerからターゲットの android.jar を右クリックで Build Path を設定することができます。

  • Facebookアプリ – WiFiで接続できない場合【その3】

    Facebookアプリ(for Android)がWiFiでなかなかつながらない件について追加の記事です。

    先週の7日に1.9.5がリリースされ、その数日前あたりから特に問題なくつながるようになりました。
    これまでにも同じような状況が何度かありましたので、例えばFacebookの公式アプリで問題が発生した場合はブラウザやSeesmicなど他の利用手段を用意しておいて、次のバージョンアップまでしばらく様子をみるのが良いのかも知れません。

    それと、3GからWiFiに切り替えた直後や電波の状態でWiFi接続が安定していないと
    「接続が切れました」
    という表示になって、そこからなかなかつながらなくなる場合があります。
    そのようなときに、WiFi Fixerを利用すると改善されるかも知れません。

    ネットワーク環境や機種によると思いますが、参考まで。

  • Facebookアプリ – WiFiで接続できない【その2】

    Facebookアプリ(Android)がWiFiで接続できなくなった件について
    追加の記事です。

    接続復旧の手順をいろいろ試してみました。
    サービスの停止までしなくても、もう少し簡単にできるようなので
    まとめておきます。

    ただし、アプリを閉じてしばらく時間が経つとやはりつながらなくなって
    また3Gからのやり直しが必要です。

    1. WiFiでつながらない状態を確認。
    2. WiFiをOFFにして3GをONにします。
    3. Facebookアプリを終了させます。
      「設定」->「システム」->「アプリケーション」->「アプリケーションの管理」
      を開いて「実行中タブ」を選択し「Facebook」をタップ。

      強制停止ボタンを押します。

      ※前の記事では関連サービスを止めたり、キャッシュを削除したりしましたがそこまではしなくても良さそうです。
    4. あらためてFacebookアプリを起動。

      3Gで利用できることが確認できたら、WiFiに切り替えます。

      これで、WiFiのみで継続して利用できると思います。

    ちなみに、アプリケーションの強制終了ですが、
    Androidの「設定」からだと結構階層が深いので手間がかかります。
    アプリを終了させる専用のアプリが便利です。
    Automatic Task Killerがおすすめ。

    • Automatic Task Killer
      アプリの一覧からFacebookを選んで長押しでタップすると簡単に強制終了できます。
  • Facebookアプリ – WiFiで接続できない【未解決】

    先日から、Android用のFacebookアプリがWiFiではつながらなくなっていました。
    3Gだとつながるのですが、WiFiではつながらない状態。
    ただし、WiFiでもメッセージのリストは表示されます。

    ちなみに、Facebookアプリのバージョンは、本日アップデートして
    1.9.3 -> 1.9.4 になっています。

    問題を解決しようと検索してみたのですが、
    それらしい記事がなかなか見つからず。
    やっと見つけた記事(フォーラム)がこちら。
    http://androidforums.com/desire-hd-support-troubleshooting/535279-facebook-android-connection-lost.html

    で、先ほどやっと解決しました。
    (半分ほど解決)その方法。
    上記フォーラムを参考にWiFiと3Gを両方ONにしてアプリを起動。
    正常にアクセスできることを確認して、3GをOFFにします。
    これで元通りWiFiでもつながるようになりました。

    まぁ、それだけのことではあるのですが、
    普段、なるべく電池の消耗を抑えようと、3G/WiFiの切り替えを
    しているので、なかなか気づかず。

    それと、WiFiで接続できない状態で、WiFi:OFF、3G:ON としても
    すぐには3Gでつながらないことがあります。
    その場合は、「アプリケーション設定」を開いて実行中のサービスを
    確認します。

    すると、Facebook関連のサービスが3~4個ほど見つかると思いますので、
    タッチして停止します。
    Facebookアプリ自体も「アプリケーションの管理」で確認して
    起動している場合は停止しておきます。

    そして、ネットワークの接続(3G only, WiFi only, 3G+WiFi)を切り替えるなどして、
    あらためてFacebookアプリを起動します。

    【追記】
    一度、Facebookアプリを閉じるとやはりWiFiではつながらなくなりました。
    その際、毎回、上記のような手順が必要になります。
    機種依存の問題もあるかもしれません。(IS06, Android-2.2.1)
    継続して調べてみます。

  • オプションメニューを設置 – Android

    最近は、従来のメニューボタンからのオプションメニューに変わって、アクションバーが推奨されているようです。ということで、Android 3.0 (API level 11)から追加されたアクションバーを設置してみました。

    アクティビティの onCreate()にアクションバーの利用を宣言します。
    ただし、API level 11より前の端末ではエラーになりますので、
    バージョンによって条件分岐させます。

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {  
    	        getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
            }
            
            setContentView(R.layout.main);
            //以降省略
        }
    

    アクションバー(またはメニューボタン)をでメニューが表示されるようにします。
    ここでも、setShowAsAction()というメソッドがAPI level 11以降に対応なので、
    条件分岐が必要です。

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
         
            MenuItem actionItem = menu.add("About");
         
            if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {  
    	        actionItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
            }
            
            actionItem.setIcon(android.R.drawable.ic_menu_info_details);
         
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            //メニューが選ばれたときの処理を書きます。
        }
    

    このように実装することで、API level 11以降はアクションバーが表示され、
    API level 11より前の端末では従来のオプションメニューが表示されます。

    参考記事
    http://www.pcmag.com/article2/0,2817,2399437,00.asp
    http://developer.android.com/guide/topics/ui/actionbar.html

    Android 4.0からのActionBar再入門


    http://y-anz-m.blogspot.jp/2011/04/android.html