package com.tencent.tws.pluginhost.ui;
import android.annotation.TargetApi;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import com.tencent.tws.assistant.support.v4.app.TwsFragmentActivity;
import com.tencent.tws.framework.HostProxy;
import com.tencent.tws.pluginhost.R;
public class MessageManagerActivity extends TwsFragmentActivity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getTwsActionBar().setTitle(getResources().getString(R.string.activity_message_mgr_title));
setContentView(R.layout.activity_message_manager);
findViewById(R.id.send_notification).setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.send_notification:
testNotification();
break;
default:
break;
}
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void testNotification() {
// 当前交由宿主执行,使用的资源id得宿主能解析得到
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(HostProxy.getApplication());
Intent intent = new Intent();
// 唤起指定Activity
intent.setClassName(getPackageName(), MessageManagerActivity.class.getName());
// 还可以支持唤起service、receiver等等。
intent.putExtra("param1", "这是来自通知栏的参数");
PendingIntent contentIndent = PendingIntent.getActivity(HostProxy.getApplication(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(contentIndent).setSmallIcon(HostProxy.getApplicationIconId())// 设置状态栏里面的图标(小图标)【这里尽可能的用宿主的icon】
// .setLargeIcon(BitmapFactory.decodeResource(res,R.drawable.i5))//下拉下拉列表里面的图标(大图标)
// .setTicker("this is bitch!")//设置状态栏的显示的信息
.setWhen(System.currentTimeMillis())// 设置时间发生时间
.setAutoCancel(true)// 设置可以清除
.setContentTitle("来自插件ContentTitle")// 设置下拉列表里的标题
.setDefaults(Notification.DEFAULT_SOUND)// 设置为默认的声音
.setContentText("来自插件ContentText");// 设置上下文内容
if (Build.VERSION.SDK_INT >= 21) {
// api大于等于21时,测试通知栏携带插件布局资源文件
// builder.setContent(new
// RemoteViews(this.getPackageName(),
// R.layout.plugin_notification));
}
Notification notification = builder.getNotification();
final int notifyId = 100;
notificationManager.notify(notifyId, notification);
}
}