Android-AndroidManifest.xml默认启动的Activity(探索篇01)
Posted 原创Android 努力学习 专一安卓 持之以恒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android-AndroidManifest.xml默认启动的Activity(探索篇01)相关的知识,希望对你有一定的参考价值。
AndroidManifest.xml-->默认启动 MusicBrowserActivity
<activity android:name=".MusicBrowserActivity" android:theme="@android:style/Theme.NoTitleBar" android:exported="true"> <!-- android:exported="true" 是否支持其它应用调用当前组件。 默认值:如果包含有intent-filter 默认值为true; 没有intent-filter默认值为false。 --> <intent-filter> <!-- 程序主入口 --> <action android:name="android.intent.action.MAIN" /> <!-- 启动的Launcher --> <category android:name="android.intent.category.LAUNCHER" /> <!-- 给其他地方/程序调用的action --> <action android:name="android.intent.action.MUSIC_PLAYER" /> <!-- 隐式启动需要增加category.DEFAULT,new Intent()... --> <category android:name="android.intent.category.DEFAULT" /> <!-- 和ACTION_MAIN一起使用,用来启动音乐应用程序 --> <category android:name="android.intent.category.APP_MUSIC" /> </intent-filter> </activity>
MusicBrowserActivity
package liudeli.music2; import android.Manifest; import android.annotation.SuppressLint; import android.app.Activity; import android.content.ComponentName; import android.content.ServiceConnection; import android.content.pm.PackageManager; import android.os.Bundle; import android.os.IBinder; import android.os.RemoteException; import android.support.annotation.NonNull; import android.util.Log; import liudeli.music2.service.IMediaPlaybackService; import liudeli.music2.service.MediaPlaybackService; import liudeli.music2.util.MusicUtils; /** * Description:主页面入口 * Created by Liudeli on 2017/10/27. * About: Liudeli * QICQ: 1830140442 * Email: [email protected] * Company: [email protected] * Phone: 15221634614 * Date: 2017/10/27 * CSDN: http://blog.csdn.net/u011967006 */ public class MusicBrowserActivity extends Activity implements MusicUtils.Defs { private static final String TAG = "MusicBrowserActivity"; private MusicUtils.ServiceToken mToken; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 系统6.0权限问题 // requestReadExternalPermission(); // 通过SharedPreferences get上一次tab的记录 int activeTab = MusicUtils.getIntPref(this, "activetab", R.id.artisttab); // 如果不等于所有tab选项,就默认[音乐人tab] if (activeTab != R.id.artisttab && activeTab != R.id.albumtab && activeTab != R.id.songtab && activeTab != R.id.playlisttab) { activeTab = R.id.artisttab; } // 去指定start那个Activity [音乐人][专辑][歌曲][播放列表] MusicUtils.activateTab(this, activeTab); // 我的理解是其他应用程序,来传值进行逻辑操作 String shuf = getIntent().getStringExtra("autoshuffle"); Log.d(TAG, "shuf:" + shuf); if ("true".equals(shuf)) { mToken = MusicUtils.bindToService(this, autoshuffle); } } private ServiceConnection autoshuffle = new ServiceConnection() { public void onServiceConnected(ComponentName classname, IBinder obj) { // 我们需要再次绑定,这样就可以解除绑定 Log.d(TAG, "我们需要再次绑定,这样就可以解除绑定"); try { unbindService(this); } catch (IllegalArgumentException e) { } IMediaPlaybackService serv = IMediaPlaybackService.Stub.asInterface(obj); if (serv != null) { try { serv.setShuffleMode(MediaPlaybackService.SHUFFLE_AUTO); } catch (RemoteException ex) { } } } public void onServiceDisconnected(ComponentName classname) { } }; @Override protected void onDestroy() { if (null != mToken) { MusicUtils.unbindFromService(mToken); } super.onDestroy(); } /** * 系统6.0权限问题 * @param requestCode * @param permissions * @param grantResults */ @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); Log.d(TAG, "requestCode=" + requestCode + "; --->" + permissions.toString() + "; grantResult=" + grantResults.toString()); switch (requestCode) { case 0: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // permission was granted // request successfully, handle you transactions // requestReadExternalPermission(); } else { // permission denied // request failed // requestReadExternalPermission(); } return; } default: break; } } /** * 系统6.0权限问题 */ @SuppressLint("NewApi") private void requestReadExternalPermission() { if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { Log.d(TAG, "READ permission IS NOT granted..."); if (shouldShowRequestPermissionRationale(Manifest.permission.READ_EXTERNAL_STORAGE)) { Log.d(TAG, "11111111111111"); } else { // 0 是自己定义的请求coude requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 0); Log.d(TAG, "222222222222"); } } else { Log.d(TAG, "READ permission is granted..."); } } }
以上是关于Android-AndroidManifest.xml默认启动的Activity(探索篇01)的主要内容,如果未能解决你的问题,请参考以下文章