月別アーカイブ 6月 2019

村上 著者:村上

【Cordova】Android端末でアプリのパーミッションを確認するプラグイン「cordova-plugin-android-permissions」

昨日の記事で名前だけ紹介したプラグイン「cordova-plugin-android-permissions」についてご紹介します。
名前のとおり、Android 端末のパーミッションチェックしか行えませんが、使い方が分かりやすいのでこちらもおすすめです。

GitHub – NeoLSN/cordova-plugin-android-permissions: This plugin is designed for supporting Android new permissions checking mechanism.
https://github.com/NeoLSN/cordova-plugin-android-permissions

 

インストールのためのコマンドは下記のとおりです。

cordova plugin add cordova-plugin-android-permissions

使用例は下記のとおりです。

const permissions = cordova.plugins.permissions;
permissions.requestPermission(permissions.CAMERA, function(status) {
    if (status.hasPermission) {
        // 許可された
    } else {
        // 許可されなかった
    }
}, function(error) {
    // 許可されなかった
    console.log(error)
});

なお、上記ではカメラパーミッションをリクエストしています。
許可されていない場合は、パーミッションダイアログが表示されます。

単にパーミッションを確認するだけの場合は、下記を使用します。

permissions.checkPermission(permission, successCallback, errorCallback);

上記を実行した場合、指定したパーミッションが許可されていない時でもダイアログは表示されません。

カメラ以外のパーミッションを確認する場合は、下記の Manifest.permission を参考にしてください。

Manifest.permission|Android Developers
https://developer.android.com/reference/android/Manifest.permission.html?hl=zh-tw

 

以上、Android 端末でアプリのパーミッションを確認するためのプラグイン「cordova-plugin-android-permissions」のご紹介でした。
昨日紹介した「cordova-diagnostic-plugin」とは違い、第一引数を変更すれば同一の処理でパーミッションを確認できるのは良いですね。
個人的にはこういった書き方の方が好みです。
需要に合えば、是非ご活用ください。

  • この記事いいね! (0)
著者:ym

MySQL のテンポラリーと tmpdir

MySQL データベースの起動時の自動修復が失敗し、/tmp が溢れたとログにでました。手動で REPAIR TABLE をかけたところ、同様。

調査したところ /etc/my.cnf の tmpdir 値のところを REPAIR TABLE 時に使用しているらしく、テーブルの出たが多いとテンポラリーテーブルが足りずにエラーとなっている状況でした。

[mysqld]
tmpdir = /tmp

/etc/my.cnf

この値をディスク容量の多きなパーティションへ変更し、改めて修復を行ったところ 30 分程度で修復が完了しました。

  • この記事いいね! (0)
asaba 著者:asaba

【java】javaにおけるコンストラクタの使い方・おさらい

javaでコンストラクタの使い方がわかってきてもう怖いものはないと思っていましたが、いずれまたすぐ忘れるかもなので自分用に

とっておきます。コンストラクタは、インスタンスを作る時に初期値を設定するために呼び出されるメソッドのことで、クラス名と

必ず同じ名前でなければなりません。また、コンストラクタのメソッド内でreturnを書いても死ぬのでここも注意ですね。

知らないうちはそんなのメンバ変数を適当に定義しとけばいいじゃんと思っていましたが、コードが大きくなるにつれ結局メンテナンス

が大変になって汚いコードになることを知ったのでまた使い方をおさらいしていたところです。理屈で知っていても何のために使う

か実際に書いて理解していないとわかったつもり状態になってしまうのでここにきてサンドボックスで少し復習しました、はい。

次のプログラムは、コンストラクタのメソッドに決められた文字を設定して、superでスーパークラスのコンストラクタを利用して

それぞれ異なる結果を出力するプログラムです。

 

</pre>
// スーパークラス
class ClassSuper {
protected int i;

public ClassSuper(str i){
this.i = i;
}

public void favarite(){
System.out.println("私は" + i + "が好きではありません。");
}
}
// サブクラス
class ClassSub extends ClassSuper{
public ClassSub(str i) {
super(i);
}

@Override
public void favarite(){
System.out.println("私は" + i + "が好きです。");
super.favarite();
}
}

public class Main {

public static void main(String[] args) {
ClassSub cs = new ClassSub("カレーライス");
cs.favarite();
}

}
<pre>

コンストラクタにカレーライスという文字を設定しています。何も設定しない場合は、スーパークラスをオーバーライドしている

サブクラスのメソッドを呼び出すのですが、今回はコンストラクタメソッド内でsuperメソッドを呼び出しています。このsuperメソッド

は、オーバーライドしているサブクラスのメソッドでないスーパークラスのメソッドを使いたい時に用いるメソッドです。

これを呼び出すことにより、”カレーライス”文字列はスーパークラス・サブクラス二つのクラスのコンストラクタとして初期値に設定され

それぞれ違うメソッドを呼び出すことに成功しています。

 

 

  • この記事いいね! (0)
村上 著者:村上

【Cordova】アプリのパーミッションを確認するプラグイン「cordova-diagnostic-plugin」

アプリのパーミッションを確認する必要があったため、プラグインをインストールしました。
Android なら、cordova-plugin-android-permissions というプラグインがあったのですが、名前のとおり、Android のみしか対応していなかったため、iOS でのチェックを行うためにこちらもインストールしました。
しかし、こちらは Android にも対応しているため、cordova-plugin-android-permissions の方をアンインストールして、これのみでチェックしようかと思っています。

GitHub のページはこちらから。

GitHub – dpa99c/cordova-diagnostic-plugin: Cordova/Phonegap plugin to manage device settings
https://github.com/dpa99c/cordova-diagnostic-plugin

 

使い方ですが、例えばカメラのパーミッションを確認する場合は下記のように記述します。

cordova.plugins.diagnostic.getCameraAuthorizationStatus(
    function(status) {
        // チェック成功
        if(status === cordova.plugins.diagnostic.permissionStatus.GRANTED) {
            // カメラが使用が許可されている
            ......
        } else {
            // カメラが使用が許可されていない
            ......
        }
    }, function(error) {
        // チェック失敗
        console.error("The following error occurred: "+error);
    }, false
);

カメラの使用が許可されている場合は、上記のようにステータスで GRANTED の値が返却されます。
なので、返却値によって適宜処理を変更してください。

なお、上記のコードでは、パーミッションを確認するだけなので、もしなかった場合でも許可/拒否のダイアログの表示はしません。
パーミッションをリクエストしたい場合には、requestCameraAuthorization() を使用してください。
使用例は下記の通りです。

cordova.plugins.diagnostic.requestCameraAuthorization(
    function(status) {
        if (status === cordova.plugins.diagnostic.permissionStatus.GRANTED) {
            // カメラ使用が許可された場合
            ......
        } else {
            // カメラ使用が許可された場合
            ......
        }
    }, function(error) {
        console.error("The following error occurred: "+error);
    }, false
);

使い方としてはこんな感じです。
他にも、位置情報や Bluetooth、プッシュ通知、マイクなど、色々チェックできます。

ただし、位置情報など一部のパーミッションによっては、戻り値のステータスの値が Android と iOS で違っていたりするので、そこだけはご注意ください。

 

以上、アプリのパーミッションをチェックするためのプラグイン「cordova-diagnostic-plugin」のご紹介でした。
戻り値に注意して、便利にお使いください。

  • この記事いいね! (0)
著者:杉浦

【Laravel】【Docker】Laravel用Dockerパッケージlaradocの紹介

 Dockerは仮想マシンを用意するツールです。何かと便利なのですが、仮想マシン中のソフトそれぞれについての知識がそれなりに必要になります。知識なしのままデフォルト設定から離れるとバグを生みがちです。
If it works in Docker, it works on CircleCI – CircleCI
 そうなるとDockerのデフォルト設定でなくLaravel用の安全な設定が欲しくなります。Laradocはそういった要素のパッケージです。Laradock
 サーバ機能、各データベース、jenkinsなどCIツール、Laravel推奨パッケージ、などが詰まっています。パッケージに命令を発する。docker-composeファイルは次の様な巻物になっています。この中から探すと大体メジャーなソフトやパッケージが見つかります。また、扱いやすい様に高頻度で変えられるパラメータなどが変数化されており、簡単安心に基本的な使い方ができます。
 
 日本語のチュートリアルは色々な人が詳しく書いているのがたくさんあるのでググれば目的のものが大体あります。

  • この記事いいね! (1)
asaba 著者:asaba

【java】オーバーロードを使ったポリモーフィズムの書き方

今回は、ポリモーフィズムの話題です。

ポリモーフィズムとは、定義された同じ名前のメソッドを使ってクラスごとに全く違う振る舞いを

入れこむことができる概念で、、多様性という意味を持ちます。

今回は、オーバーロードの書き方に沿ったポリモーフィズムをさっと書いてみました。

※「オーバーロード」とは、一つの「クラス」の中に、同じ名前で引数が違うメソッドがある状態のことを指します。

このオーバーロードに沿って簡単な計算をするプログラムを書くとこんな感じに仕上がります。

</pre>
<pre>class calculator{
  public void calc(int x) {
    System.out.println("x * x = " + (x * x));
  }
  public void calc(int x, int y) {
    System.out.println("x * y = " + (x * y));
  }
}

class plusCalc{
  public static void main(String[] args) {
    calculator hoge = new calculator();
    hoge.calc(int 4,2)
    hoge.calc(int 2)
}
</pre>
<pre>

スーパークラスcalculatorのインスタンスを定義してcalcメソッドを使用可能にしています。その後に

引数が異なるメソッドを二つ定義しているのがわかります。ここの引数が異なるのがポイントで、

引数によってどのメソッドに処理をさせるかを識別してからメソッドを呼び出しています。

この識別されるメソッドと引数を全部ひっくるめてシグネチャと呼びます。

オーバーロードをこのポリフォーリズムの書き方に当てはめることで、このシグネチャによって

どれだけ同じメソッドを書いても引数によってその処理を柔軟に変えることが出来るのです。

以上です。

オーバーライドを使ったポリモーフィズムもあるのですが、うろ覚えで自信がないのでまたまとまった時に書きます。

  • この記事いいね! (0)
takahashi 著者:takahashi

Windows 10 の新しいスクリーンショットがなかなか使いやすい件

Windowsのスクリーンショットを撮影する際、今まではキーボードの”Print Screen”キーか、Windowsに標準で入っている”Snipping Tool”のいずれかを使う方法が用意されていました。

実は、Windows 10 Creators Update(ビルド1703)から、もう一つスクリーンショットの撮影方法が追加されていたことをご存知でしょうか。

この新しいスクリーンショットは、”Windows + Shift + S”キーを同時に押すことで起動します。

デフォルトは距形選択モードになっていて、選択した部分が四角く切り取られた形でキャプチャすることができます。

また、フリーフォーム グリップを選択すると…

このように円形に近い形で切り取ることができます。

ちなみに3つ目は全画面キャプチャです。

snipping toolは毎回起動する必要がありましたが、この新しいスクリーンキャプチャはショートカットキーを押すだけで起動するので便利です。

ちなみに、

「Snipping Tool」は廃止へ ~「Windows 10 RS5」でスクショの取り方はこうなる! – 窓の杜

従来のSnipping Toolは廃止される予定とのことです。

  • この記事いいね! (0)
村上 著者:村上

【Android】「Android resource linking failed」エラーの対処法

今回は、Android Studio でアプリをビルド中に遭遇したエラーについて。
タイトルにも書きましたが、「Android resource linking failed」というエラーです。
直訳すると、Androidリソースのリンクに失敗しました とのことですが…つまりどういう意味?

 

ということで検索してみたところ、下記の記事がヒットしました。

[Android]「Android resource linking failed」というメッセージでビルドエラーになる場合の対処法 – みんなのプログラミング
https://minpro.net/android-resource-linking-failed

エラーの全文も載っていたので、私の環境で発生しているものと照らし合わせて確認しました。
どうやら同一のエラーのようです。

で、このエラーの対処法としては、アプリレベルの build.gradle ファイルの compileSdkVersionbuildToolsVersion と合わせればと良いとのこと。
私の環境では、buildToolsVersion は 28 だったので、build.gradle の compileSdkVersion も 28 に変更しました。

android {
    ...
    compileSdkVersion 28
    buildToolsVersion "28.0.3"
    defaultConfig {
        ...
        targetSdkVersion 28
    }
}

なお、このとき一緒に targetSdkVersion も 28 に変更しましょう。

修正するのはこれだけです。
あとは、Sync Now を行ってから、通常通り、ビルド・実行を行ってください。
私の環境では、問題なく実行できました。

 

以上、Android Studio で「Android resource linking failed」エラーが発生した時の対処法でした。
分かりにくいエラーだったので最初は焦りましたが、参考になるサイトがヒットしたので良かったです。
参考になれば幸いです。

  • この記事いいね! (0)
asaba 著者:asaba

デスクトップ上に現れた0バイトのファイルの消去法

とあるファイルをゴミ箱から復元した時に、AFE5500Gという謎のファイルが一緒にくっついてきました。

下手に触って変なサイトに誘導されたりするのも怖いので検索してみた所、googleやYahoo!で取得したツールバーを入れすぎると

このようなファイルがくっついてくるみたいです。後はAtomなどのテキストエディタをインストールした時にもついてきます。

ファイル自体はウィルスとは全く無縁の無害なファイルなので放っておいても悪影響はないですが、デスクトップにいつまでも残り

続けると気になりますしデスクトップを圧迫してしまいます。

対処法は、使っていないツールバーをアンインストールする、テキストエディタで使用中のファイルを消さない、ゴミ箱で見覚えの

ないファイルを復元しないなど多岐にありますので同じ目に会っている方は試してみてください。それでは!

  • この記事いいね! (0)
著者:ym

高額で落札された中古ドメイン名

サークルKサンクスが使用していたドメイン名が使用しなくなり、有効期限が切れて開放されましたが、その後、オークションにかけられ 5000 万円で落札された様です。

それだけの価値があると判断したのだと思いますが、 5000 万円で落札した方は、このドメイン名を何に使おうとしているのだろうか。

最近広告売上はよくないと思うけど。

ファミリーマートに統合され、2018年11月に営業を終えたコンビニ「サークルK・サンクス」の公式サイトで使われていた中古ドメイン「circleksunkus.jp」が、6月18日午後8時30分ごろ、ネットオークションで競り落とされた。落札額は6000万300円。

https://www.itmedia.co.jp/news/articles/1906/18/news121.html

私でさえも被リンクなんて持っていないのに。お名前.com管理配下の中でもトップクラスだったんですね。
でも、やはりこれだけ高く購入したんだし悪用されるんだろうなぁ。

  • この記事いいね! (0)