package com.atguigu.mobileplayer1020; import android.Manifest; import android.app.Activity; import android.content.pm.PackageManager; import android.hardware.Sensor; import android.hardware.SensorManager; import android.os.Build; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.widget.RadioGroup; import com.atguigu.mobileplayer1020.base.BaseFragment; import com.atguigu.mobileplayer1020.fragment.LocalAudioFragment; import com.atguigu.mobileplayer1020.fragment.LocalVideoFragment; import com.atguigu.mobileplayer1020.fragment.NetAudioFragment; import com.atguigu.mobileplayer1020.fragment.NetVideoFragment; import com.atguigu.mobileplayer1020.fragment.RecyclerViewFragment; import java.util.ArrayList; import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; public class MainActivity extends AppCompatActivity { private RadioGroup rg_main; private ArrayList<BaseFragment> fragments; /** * Fragment页面的下标位置 */ private int position; /** * 缓存的Fragment */ private Fragment tempFragment; /** * */ private SensorManager sensorManager; private JCVideoPlayer.JCAutoFullscreenListener sensorEventListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e("TAG","onCreate"); setContentView(R.layout.activity_main); rg_main = (RadioGroup) findViewById(R.id.rg_main); //Android6.0动态获取权限 isGrantExternalRW(this); initFragment(); //设置RadioGroup的监听 initListenter(); sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); sensorEventListener = new JCVideoPlayer.JCAutoFullscreenListener(); } private void initListenter() { //设置RadioGroup选中状态变化的监听 rg_main.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId) { case R.id.rb_local_video: position = 0; break; case R.id.rb_local_audio: position = 1; break; case R.id.rb_net_audio: position = 2; break; case R.id.rb_net_video: position = 3; break; case R.id.rb_recyclerview: position = 4; break; } //Fragment-当前的Fragment Fragment currentFragment = fragments.get(position); switchFragment(currentFragment); } }); //默认选中本地视频 rg_main.check(R.id.rb_local_video);//onCheckedChanged } private void switchFragment(Fragment currentFragment) { if (tempFragment != currentFragment) { //开启事务 FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); //切换 if (currentFragment != null) { //是否添加过 if (!currentFragment.isAdded()) { //把之前显示的给隐藏 if (tempFragment != null) { ft.hide(tempFragment); } //如果没有添加就添加 ft.add(R.id.fl_mainc_content, currentFragment); } else { //把之前的隐藏 if (tempFragment != null) { ft.hide(tempFragment); } //如果添加了就直接显示 ft.show(currentFragment); } //最后一步,提交事务 ft.commit(); } tempFragment = currentFragment; } } /** * 初始化Fragment * 有先后顺序要求 */ private void initFragment() { fragments = new ArrayList<>(); fragments.add(new LocalVideoFragment());//本地视频 fragments.add(new LocalAudioFragment());//本地音乐 fragments.add(new NetAudioFragment());//网络音乐 fragments.add(new NetVideoFragment());//网络视频 fragments.add(new RecyclerViewFragment());//RecyclerView } @Override protected void onDestroy() { super.onDestroy(); Log.e("TAG","onDestroy"); } /** * 解决安卓6.0以上版本不能读取外部存储权限的问题 * @param activity * @return */ public static boolean isGrantExternalRW(Activity activity) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && activity.checkSelfPermission( Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { activity.requestPermissions(new String[]{ Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1); return false; } return true; } // private boolean isExit = false; // // @Override // public boolean onKeyDown(int keyCode, KeyEvent event) { // if(keyCode ==KeyEvent.KEYCODE_BACK){ // if(position !=0){ // //选中首页 // rg_main.check(R.id.rb_local_video); // return true; // }else if(!isExit){ // isExit = true; // Toast.makeText(this, "再按一次推出", Toast.LENGTH_SHORT).show(); // new Handler().postDelayed(new Runnable() { // @Override // public void run() { // isExit = false; // } // }, 2000); // return true; // } // } // return super.onKeyDown(keyCode, event); // } @Override protected void onResume() { super.onResume(); //监听传感器 Sensor accelerometerSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); sensorManager.registerListener(sensorEventListener, accelerometerSensor, SensorManager.SENSOR_DELAY_NORMAL); } @Override protected void onPause() { super.onPause(); //取消注册 sensorManager.unregisterListener(sensorEventListener); JCVideoPlayer.releaseAllVideos(); } @Override public void onBackPressed() { if (JCVideoPlayer.backPress()) { return; } super.onBackPressed(); } }