Parse Android SDK1.8+でPush通知を無視する
Push通知をON/OFFにしたい。それをParseでするのに以前はPushService.setDefaultPushCallback
でnull
を渡すことで実現していましたが、ひさしぶりにParseを使ってみるとPushService.setDefaultPushCallback
がdeprecatedになっていたので代替の方法を探しました。
環境は次のとおり。
- Parse Android SDK1.8+
- gradle 2.2.1
ググって見つかったsubscribe/unsubscribe
を使ってchannel指定する方法だと、everyoneに配信したときに通知がでてしまう。ここのオペレーションは変えたくない。
そこで、Push通知を受け取るReceiverを継承してごにょごにょする方法を試したところ上手く行きました。
public class CustomReceiver extends ParsePushBroadcastReceiver { private static final String TAG = "CustomReceiver"; @Override public void onReceive(Context context, Intent intent) { Setting setting = ((AnyApplication)context.getApplicationContext()).getSetting(); if( setting.isEnabledReceiveNotification() ) { super.onReceive(context, intent); } else { abortBroadcast(); } } }
<receiver android:name="${applicationId}.CustomReceiver" android:exported="false"> <intent-filter> <action android:name="com.parse.push.intent.RECEIVE" /> <action android:name="com.parse.push.intent.DELETE" /> <action android:name="com.parse.push.intent.OPEN" /> </intent-filter> </receiver>
参考
MacでWifi共有で透過的にmitmproxy
mitmproxyをWifi共有を使って透過的proxyとして使うための手順メモです。 実施環境は下記の通り。
手順
1.mitmproxyのインストール
$ pip install mitmproxy
2.証明書を端末(iPhone/Android)にインストール
下記に配置されているのでメールなどを使って端末に送る。 添付ファイルをタップすれば自動的にインストールのためのアプリ選択画面が表示される。
$ ~/.mitmproxy/mitmproxy-ca-cert.pem
3.Wifi共有の設定
OS X側で、システム環境設定 -> 共有 -> インターネット共有からWifi共有の設定をする。 端末側はここで設定したWifiポイントにつなぐようにする。
4.Packet forwardingの設定
最後にport80/443に流れてくるパケットをmitmproxyにリダイレクトするようにする。 まずは、Wifi共有に使われているインターフェース名を調べる。
$ ifconfig
(たいてい、bridge0というような名前)
Packet forwardingを有効にする
$ sudo sysctl -w net.inet.ip.forwarding=1
Packet forwardingの設定を下記のような感じにする。
$ sudo vi /private/etc/pf.conf
scrub-anchor "com.apple/*" nat-anchor "com.apple/*" rdr-anchor "com.apple/*" rdr pass on bridge0 inet proto tcp from 192.168.2.0/24 to any port http -> 127.0.0.1 port 8080 rdr pass on bridge0 inet proto tcp from 192.168.2.0/24 to any port https -> 127.0.0.1 port 8080 dummynet-anchor "com.apple/*" anchor "com.apple/*" load anchor "com.apple" from "/etc/pf.anchors/com.apple"
pfを有効にする。
$ sudo pfctl -f /private/etc/pf.conf
$ sudo pfctl -e
mitmproxyを透過的プロキシモードで起動する。
$ mitmproxy -T --host
おしまい。
参考
GradleでAndroidアプリを起動するタスクを追加する
GradleのAndroid Pluginはapkをビルドしてインストールするところまではやってくれますが、アプリの起動まではやってくれません。 ということで、アプリの起動をやってくれるタスクを追加しましょう。
実行環境は下記のとおりです。
タスクの追加
下記の記述をbuild.gradleに追加します。
使い方
次のようにして実行します。(実際にはbuildTypeの種類だけタスクが追加されます)
$ gradle runDebug
$ gradle runRelease
参考
Custom Tasks hooking on to all flavors of a given buildtype
Thx
ichigotake様