帖子
帖子
用户
博客
课程
显示全部楼层
216
帖子
5
勋章
5933
Y币

[插件开发] 求教模块中如何启动app啊..

[复制链接]
发表于 2015-6-10 17:09:50
我做了个模块,发送了个通知消息。。现在要实现点击通知消息就启动app,求教模块中如何启动app啊..
代码如下:


package com.wholeton.wifi;
import com.uzmap.pkg.uzcore.UZResourcesIDFinder;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import**.**.ConnectivityManager;
import**.**.NetworkInfo;
import android.os.IBinder;
import android.util.Log;
public class ListenNetStateService extends Service {
private ConnectivityManager connectivityManager;
private NetworkInfo info;
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
  @SuppressWarnings("deprecation")
  @Override
  public void onReceive(Context context, Intent intent) {
   String action = intent.getAction();
   if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
    Log.d("mark", "网络状态已经改变");
    connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    info = connectivityManager.getActiveNetworkInfo();
    if (info != null && info.isAvailable()) {
     String name = info.getTypeName();
     Log.d("mark", "当前网络名称:" + name);
     
     //获得通知管理器
     NotificationManager manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
     //构建一个通知对象(需要传递的参数有三个,分别是图标,标题和 时间)
     Notification notification = new Notification(UZResourcesIDFinder.getResDrawableID("uz_icon"),"通知",System.currentTimeMillis());
     
     Intent _intent=new Intent();
     PendingIntent pendingIntent = PendingIntent.getActivity(context,0,_intent,0);
     notification.setLatestEventInfo(getApplicationContext(), "通知标题", "您好!你已经进入WIFI覆盖范围。", pendingIntent);
     notification.flags = Notification.FLAG_AUTO_CANCEL;//点击后自动消失
     notification.defaults = Notification.DEFAULT_SOUND;//声音默认
     manager.notify(0, notification);//发动通知,id由自己指定,每一个Notification对应的唯一标志
     //其实这里的id没有必要设置,只是为了下面要用到它才进行了设置
     
    } else {
     Log.d("mark", "没有可用网络");
    }
   }
  }
};
@Override
public IBinder onBind(Intent intent) {
  return null;
}
@Override
public void onCreate() {
  super.onCreate();
  IntentFilter mFilter = new IntentFilter();
  mFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
  registerReceiver(mReceiver, mFilter);
}
@Override
public void onDestroy() {
  super.onDestroy();
  unregisterReceiver(mReceiver);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
  return super.onStartCommand(intent, flags, startId);
}
}
46
帖子
0
勋章
214
Y币
看不懂,帮顶
216
帖子
5
勋章
5933
Y币

谢谢帮顶啊,,,,指望官方大神给说下写法。。。
216
帖子
5
勋章
5933
Y币
Intent _intent=new Intent();
_intent.setData(Uri.parse("http://www**.**"));
      PendingIntent pendingIntent = PendingIntent.getActivity(context,0,_intent,0);

这么写点击通知栏可以跳转打baidu,但是启动自己的这个app捏?我不会写这块代码。求指教啊。。。

20
帖子
1
勋章
7589
Y币
您好,在通知被点击的回调里,调用以下函数代码:

  1. public void performNotification(Context context, Bundle bundle) {
  2.                 Intent action = new Intent(Intent.ACTION_MAIN);
  3.                 action.addCategory(Intent.CATEGORY_LAUNCHER);
  4.                 action.setComponent(new ComponentName(context, EntranceActivity.class));
  5.                 action.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
  6.                     //JSONObject json = transBundleToParam(bundle, true, true);//如果要传参,加上这两句
  7.                     //action.putExtra("appParam",  json.toString());
  8.                     context.startActivity(action);
  9.         }
复制代码
您需要登录后才可以回帖 登录

本版积分规则