summaryrefslogtreecommitdiff
authorkejun.gao <kejun.gao@amlogic.com>2012-07-09 06:25:49 (GMT)
committer fred.chen <fred.chen@amlogic.com>2012-07-17 12:34:49 (GMT)
commit4c8c6f4f7176cf786ea6e2ba4d9cb111e3c7ef3b (patch)
tree7cb7b24887544a91e0228c065a8a6d353f9ed784
parentf769b9a00e486a5128058cea2ac04eabf2638f64 (diff)
downloadPPPoE-4c8c6f4f7176cf786ea6e2ba4d9cb111e3c7ef3b.zip
PPPoE-4c8c6f4f7176cf786ea6e2ba4d9cb111e3c7ef3b.tar.gz
PPPoE-4c8c6f4f7176cf786ea6e2ba4d9cb111e3c7ef3b.tar.bz2
1. Add MyPppoeService to handle ACTION_SCREEN_OFF
2. When PppoeBroadcastReceiver receives ACTION_BOOT_COMPLETED, it starts service MyPppoeService
Diffstat
-rwxr-xr-xAndroidManifest.xml2
-rwxr-xr-xsrc/com/amlogic/PPPoE/MyPppoeService.java87
-rwxr-xr-xsrc/com/amlogic/PPPoE/PppoeBroadcastReceiver.java7
3 files changed, 96 insertions, 0 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index f9f6c9f..f197bb5 100755
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -63,10 +63,12 @@
<receiver android:name=".PppoeBroadcastReceiver">
<intent-filter>
+ <action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.net.ethernet.ETH_STATE_CHANGED"/>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>
+ <service android:name=".MyPppoeService" />
</application>
</manifest>
diff --git a/src/com/amlogic/PPPoE/MyPppoeService.java b/src/com/amlogic/PPPoE/MyPppoeService.java
new file mode 100755
index 0000000..fd4d56b
--- a/dev/null
+++ b/src/com/amlogic/PPPoE/MyPppoeService.java
@@ -0,0 +1,87 @@
+package com.amlogic.PPPoE;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.app.Service;
+import android.app.ActivityManager;
+import android.content.ComponentName;
+import android.content.Intent;
+import android.content.BroadcastReceiver;
+import android.content.IntentFilter;
+import android.content.Context;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Message;
+import android.util.Log;
+import com.amlogic.pppoe.PppoeOperation;
+
+
+public class MyPppoeService extends Service
+{
+ private static final String TAG = "MyPppoeService";
+ private NotificationManager mNM;
+ private Handler mHandler;
+ private PppoeOperation operation = null;
+
+
+ @Override
+ public void onCreate() {
+ Log.d(TAG, ">>>>>>onCreate");
+
+ mNM = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
+
+ mHandler = new DMRHandler();
+
+ /* start check after 5s */
+ mHandler.sendEmptyMessageDelayed(0, 5000);
+
+ IntentFilter f = new IntentFilter();
+
+ f.addAction(Intent.ACTION_SHUTDOWN);
+ f.addAction(Intent.ACTION_SCREEN_OFF);
+ registerReceiver(mShutdownReceiver, new IntentFilter(f));
+
+ }
+
+ @Override
+ public void onDestroy() {
+ //unregisteReceiver
+ unregisterReceiver(mShutdownReceiver);
+ // Cancel the persistent notification.
+ }
+
+ @Override
+ public IBinder onBind(Intent intent) {
+ return null;
+ }
+
+
+ private class DMRHandler extends Handler
+ {
+ @Override
+ public void handleMessage(Message msg) {
+ super.handleMessage(msg);
+
+ Log.d(TAG, "handleMessage");
+ /* check per 10s */
+ mHandler.sendEmptyMessageDelayed(0, 1000000);
+ }
+ }
+
+
+private BroadcastReceiver mShutdownReceiver =
+ new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ Log.d(TAG , "onReceive :" +intent.getAction());
+
+ if ((Intent.ACTION_SCREEN_OFF).equals(intent.getAction())) {
+ operation = new PppoeOperation();
+ operation.disconnect();
+ }
+ }
+};
+
+}
+
diff --git a/src/com/amlogic/PPPoE/PppoeBroadcastReceiver.java b/src/com/amlogic/PPPoE/PppoeBroadcastReceiver.java
index 3e4c5b8..26e9563 100755
--- a/src/com/amlogic/PPPoE/PppoeBroadcastReceiver.java
+++ b/src/com/amlogic/PPPoE/PppoeBroadcastReceiver.java
@@ -18,6 +18,8 @@ import android.os.SystemProperties;
public class PppoeBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = "PppoeBroadcastReceiver";
+ private static final String ACTION_BOOT_COMPLETED =
+ "android.intent.action.BOOT_COMPLETED";
private Handler mHandler;
private boolean mAutoDialFlag = false;
@@ -82,6 +84,11 @@ public class PppoeBroadcastReceiver extends BroadcastReceiver {
mPassword = getPassword(context);
Log.d(TAG , "Password = " + mPassword);
+ if (ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
+ context.startService(new Intent(context,
+ MyPppoeService.class));
+ }
+
if (null == mInterfaceSelected
|| !mAutoDialFlag
|| null == mUserName