【问题标题】:developing an app to send messages over WiFi between users开发一个应用程序在用户之间通过 WiFi 发送消息
【发布时间】:2017-01-15 19:47:17
【问题描述】:

如何制作“发送消息”标签?如何在用户之间的选项卡中通过 WiFi 发送消息?例如Facebook、Skype 和其他聊天应用程序使用标签来发送消息。

这是我的标签代码:

 public class Profile extends AppCompatActivity {

    private Toolbar toolbar;
    private TabLayout tabLayout;
    private ViewPager viewPager;


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

//        toolbar = (Toolbar) findViewById(R.id.toolbar);
//        setSupportActionBar(toolbar);
//        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        viewPager = (ViewPager) findViewById(R.id.viewpager);
        setupViewPager(viewPager);

        tabLayout = (TabLayout) findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(viewPager);
        setupTabIcons();
    }

    private void setupTabIcons() {
        int[] tabIcons = {
                R.drawable.ic_home_black_24dp,
                R.drawable.ic_message_black_24dp,
                R.drawable.ic_schedule_black_24dp,
                R.drawable.ic_account_circle_black_24dp,
        };

        tabLayout.getTabAt(0).setIcon(tabIcons[0]);
        tabLayout.getTabAt(1).setIcon(tabIcons[1]);
        tabLayout.getTabAt(2).setIcon(tabIcons[2]);
        tabLayout.getTabAt(3).setIcon(tabIcons[3]);
    }

    private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
        adapter.addFrag(new OneFragment(), "ONE");
        adapter.addFrag(new TwoFragment(), "TWO");
        adapter.addFrag(new ThreeFragment(), "THREE");
        adapter.addFrag(new FourFragment(), "FOUR");

        viewPager.setAdapter(adapter);
    }

    class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();

        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }

        @Override
        public Fragment getItem(int position) {
            return mFragmentList.get(position);
        }

        @Override
        public int getCount() {
            return mFragmentList.size();
        }

        public void addFrag(Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }

        @Override
        public CharSequence getPageTitle(int position) {

            // return null to display only the icon
            return null;
        }
    }
}

【问题讨论】:

    标签: android chat android-tablayout


    【解决方案1】:

    您可以使用 WiFi 连接在两个安卓设备之间聊天。有一个名为 Wifi P2P 的 API。更多信息请访问android developers reference。它仅适用于 Android 4.0+ 设备。

    您还可以使用从 API 级别 1 开始提供的 UDP 多播。请参阅 android developers reference

    注意:UDP 不保证数据传递(包可能丢失),所以使用 UDP 多播进行设备发现,并为需要保证传递的数据打开 TCP 连接。 TCP 侦听端口可以通过 UDP 多播广播,以便每个人都可以通过 TCP 相互连接。

    有第三方工具可以为您完成大部分工作。例如向这个github repository学习。

    【讨论】:

    • 能否提供制作消息标签的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    相关资源
    最近更新 更多