Open4

android開発関連

karamawanukaramawanu

拡張子関連つけ

<activity
    android:name=".MyCBZFileHandlerActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="file" />
        <data android:mimeType="application/x-cbz" />
    </intent-filter>
</activity>

karamawanukaramawanu

トリプルタップ検出

GestureDetector gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
    @Override
    public boolean onDown(MotionEvent event) {
        return true;
    }

    @Override
    public boolean onTripleTap(MotionEvent event) {
        // Triple tap detected
        // Add your logic here
        return super.onTripleTap(event);
    }
});

@Override
public boolean onTouchEvent(MotionEvent event) {
    gestureDetector.onTouchEvent(event);
    return super.onTouchEvent(event);
}

gestureDetector.setIsLongpressEnabled(true);

karamawanukaramawanu

トリプルタップからのドラッグ

GestureDetector gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
    @Override
    public boolean onDown(MotionEvent event) {
        return true;
    }

    @Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
        // Drag gesture detected
        // Add your logic here
        return super.onScroll(e1, e2, distanceX, distanceY);
    }

    @Override
    public boolean onTripleTap(MotionEvent event) {
        // Triple tap detected after drag gesture
        // Add your logic here
        return super.onTripleTap(event);
    }
});

@Override
public boolean onTouchEvent(MotionEvent event) {
    gestureDetector.onTouchEvent(event);
    return super.onTouchEvent(event);
}

gestureDetector.setIsLongpressEnabled(false);
gestureDetector.setIsLongpressEnabled(true);

karamawanukaramawanu

Google Admobでリリースビルドしたら広告が出なくなった

※本件は2020年あたりの内容ですが、最近のトラッキング事情から数年後には事情が変わってるかもです....

基本的に、アプリケーションの実装としては、テスト広告が出れば問題ない。

言い換えれば、仮にリリース版で広告が出なくても(割とよくある)実装は無実である。

googleads から403が返ってくる

Admob側でデリケートな設定が幾つか存在しており、設定が完了してなければ、広告は絶対表示されない。
それとは全く別に、アプリ側のテスト広告は問題なく表示される。なのでリリースするまで気づかないことはあり得る。
広告データの問い合わせは、ライブラリで別スレッドで行われてるようで(未検証)、特にエラーがあっても、メインスレッドでそれを受け取る方法はどうやらなさそうである。
具体的には、アプリ側の実装は稼働して、googleadsにリクエストを出してるが、403で何も返ってこない。
にもかかわらず、Admob側に特に警告はない。play consoleのような警告が出てくれるもんだと思ってると、リリース版でハマることになる。

logcatを眺めてて初めて判るというわけだ。

お支払い 設定 を確認する

「お支払い」設定が、利用申請を兼ねてるようだ。

「お客様のアカウントが承認されました。」という題名のメイルが届き、その直後から、広告が表示されるようになる。