如何在 Android 的通知中显示自定义文本

用户7825807

我想显示的电话号码时,电话铃声Notification,但我不知道我怎么能显示电话号码Notification
对于电话号码,我BroadcastReceiver和我可以在中显示此号码RecyclerView,但我想在中显示号码Notification
我的接收器代码:

public class NumberReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

        String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
        if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {

            String number = intent.getExtras().getString(TelephonyManager.EXTRA_INCOMING_NUMBER);

            DBHelper dbHelper = new DBHelper(context);
            SQLiteDatabase database = dbHelper.getWritableDatabase();
            dbHelper.saveNumber(number, database);
            database.close();

        }

        Intent intent1 = new Intent(DBContract.UPDATE_UI_INTENT_FILTER);
        context.sendBroadcast(intent1);
    }
}

主要活动代码:

    public class Prabeesh_page extends AppCompatActivity {

        private RecyclerView Prabeesh_LIST;
        private TextView Prabeesh_TEXT;
        private Adapter mAdapter;
        private ArrayList<IncomingModel> list = new ArrayList<>();
        private BroadcastReceiver broadcastReceiver;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_prabeesh_page);

            Prabeesh_LIST = (RecyclerView) findViewById(R.id.prabeesh_list);
            Prabeesh_TEXT = (TextView) findViewById(R.id.prabessh_textView);
            Prabeesh_LIST.setLayoutManager(new LinearLayoutManager(this));
            Prabeesh_LIST.setHasFixedSize(true);
            mAdapter = new Adapter(list);
            Prabeesh_LIST.setAdapter(mAdapter);

            readFromDB();

            addNotification();

            broadcastReceiver = new BroadcastReceiver() {
                @Override
                public void onReceive(Context context, Intent intent) {
                    readFromDB();
                }
            };

        }

        @Override
        protected void onResume() {
            super.onResume();

            registerReceiver(broadcastReceiver, new IntentFilter(DBContract.UPDATE_UI_INTENT_FILTER));

            readFromDB();
        }

        @Override
        protected void onPause() {
            super.onPause();

            unregisterReceiver(broadcastReceiver);
        }

        public void readFromDB() {
            list.clear();
            DBHelper dbHelper = new DBHelper(this);
            SQLiteDatabase database = dbHelper.getWritableDatabase();
            Cursor cursor = dbHelper.readNumber(database);
            if (cursor.getCount() > 0) {
                while (cursor.moveToNext()) {
                    String number;
                    int id;
                    id = cursor.getInt(cursor.getColumnIndex("ID"));
                    number = cursor.getString(cursor.getColumnIndex(DBContract.INCOMING_NUMBER));

                    list.add(new IncomingModel(id, number));
                }
                cursor.close();
                dbHelper.close();
                mAdapter.notifyDataSetChanged();

                Prabeesh_LIST.setVisibility(View.VISIBLE);
                Prabeesh_TEXT.setVisibility(View.GONE);
            }
        }

        private void addNotification() {
            NotificationCompat.Builder builder =
                    new NotificationCompat.Builder(this)
                            .setSmallIcon(R.mipmap.ic_launcher)
                            .setContentTitle("Notifications Example")
                            .setContentText("This is a test notification");

            Intent notificationIntent = new Intent(this, Prabeesh_page.class);
            PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,
                    PendingIntent.FLAG_UPDATE_CURRENT);
            builder.setContentIntent(contentIntent);

            // Add as notification
            NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
            manager.notify(0, builder.build());
        }
    }

**With this codes i use numbers in `RecyclerView` :** 
ublic class Adapter extends RecyclerView.Adapter<Adapter.MyViewHolder> {

    private ArrayList<IncomingModel> list = new ArrayList<>();

    public Adapter(ArrayList<IncomingModel> list) {
        this.list = list;
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.prabbesh_row, parent, false);
        return new MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {
        holder.ID.setText(Integer.toString(list.get(position).getId()));
        holder.NUMBER.setText(list.get(position).getNumber());
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    public static class MyViewHolder extends RecyclerView.ViewHolder {

        private TextView ID, NUMBER;

        public MyViewHolder(View itemView) {
            super(itemView);

            ID = (TextView) itemView.findViewById(R.id.prabeeshRow_ID);
            NUMBER = (TextView) itemView.findViewById(R.id.prabeeshRow_NUMBER);
        }
    }
}

我怎样才能显示这个数字Notification

wnieves19
public class NumberReceiver extends BroadcastReceiver {
    Context context;
@Override
public void onReceive(Context context, Intent intent) {
    this.context = context;

    String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
    if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {

        String number = intent.getExtras().getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
        addNotification(number)
        DBHelper dbHelper = new DBHelper(context);
        SQLiteDatabase database = dbHelper.getWritableDatabase();
        dbHelper.saveNumber(number, database);
        database.close();

    } 

    Intent intent1 = new Intent(DBContract.UPDATE_UI_INTENT_FILTER);
    context.sendBroadcast(intent1);
} 

private void addNotification(String number) { 
        NotificationCompat.Builder builder =
                new NotificationCompat.Builder(context)
                        .setSmallIcon(R.mipmap.ic_launcher)
                        .setContentTitle("Notifications Example") 
                        .setContentText(number); 

        Intent notificationIntent = new Intent(context, Prabeesh_page.class);
        PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent,
                PendingIntent.FLAG_UPDATE_CURRENT);
        builder.setContentIntent(contentIntent);

        // Add as notification 
        NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        manager.notify(0, builder.build());
    } 
} 

我刚刚添加了带有 String 参数的 addNotification 方法,然后从传入呼叫中传递数字的 onReceive 方法调用它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Android中创建自定义通知

来自分类Dev

如何在Xamarin.forms for Android中的权限对话框中自定义文本?

来自分类Dev

如何在Android上显示自定义地图

来自分类Dev

如何在Android中自定义Toast的背景,背景色和文本颜色

来自分类Dev

如何在新行中显示自定义文本?

来自分类Dev

如何在自定义ToolStripItem中显示菜单文本?

来自分类Dev

如何使用Malcom Android SDK显示自定义通知消息?

来自分类Dev

自定义通知未显示在Android中

来自分类Dev

自定义通知未显示在Android中

来自分类Dev

如何在Android中自定义共享意图

来自分类Dev

如何在Android systrace中添加自定义标记?

来自分类Dev

如何在Android中创建自定义导航抽屉

来自分类Dev

如何在Android中过滤自定义列表视图

来自分类Dev

如何在Android中自定义图像按钮

来自分类Dev

如何在SimpleCursorAdapter中自定义TextViews-Android

来自分类Dev

如何在Android的NumberPicker中自定义数字的值?

来自分类Dev

如何在Android中自定义UI大小元素

来自分类Dev

如何在android中创建自定义渐变?

来自分类Dev

如何在Android中自定义适配器?

来自分类Dev

如何在Android中实现自定义堆栈视图?

来自分类Dev

如何在Android中制作自定义TextView?

来自分类Dev

如何在Android中制作自定义范围栏?

来自分类Dev

如何在Android中添加自定义mime类型?

来自分类Dev

如何在android studio中安装自定义库?

来自分类Dev

Android如何在画布中设置自定义字体?

来自分类Dev

如何在Android中创建自定义导航抽屉

来自分类Dev

如何在Android中自定义ShareActionProvider

来自分类Dev

如何在Android中创建自定义PopupMenu

来自分类Dev

如何在android中创建自定义渐变?

Related 相关文章

热门标签

归档