开发一个应用程序,通过WiFi在用户之间发送消息

时间:2017-01-15 11:04:49

标签: android chat android-tablayout

如何制作“发送讯息”标签?如何在用户的标签中通过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;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用WiFi连接在两个Android设备之间聊天。有一个名为 Wifi P2P 的API。更多信息可以在android developers reference找到。它仅适用于Android 4.0及更高版本的设备。

您还可以使用自API级别1以来可用的UDP多播。请参阅android developers reference

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

有第三方工具可以为您完成大部分工作。对于例如从中学习github repository