问题描述
com.android.tradefed.device.DeviceUnresponsiveException: Attempted shell am start -W -S -a android.intent.action.VIEW -d 'file:///sdcard/test.ogg' -t audio/* 'com.android.music/.AudioPreviewStarter'
解决方案
1,请按照Google go project要求配置gms 列表,go gms 是不会预制music app的。
2,替换music进行测试。
3,通过修改PackageManagerService.java,对调用到的软件进行筛选
/frameworks/base/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
1 |
720 <span class="c">// Music</span><br>721 Intent musicIntent = new Intent(Intent.ACTION_VIEW);<br>722 musicIntent.addCategory(Intent.CATEGORY_DEFAULT);<br>723 musicIntent.setDataAndType(Uri.fromFile(new File(<span class="s">"foo.mp3"</span>)),<br>724 AUDIO_MIME_TYPE);<br>725 // PackageParser.Package musicPackage = getDefaultSystemHandlerActivityPackage(musicIntent, userId);//delete<br>PackageParser.Package musicPackage = getPackageLPr("com.android.music");//add |
原因是在最新的google包中,FilesGo 应用中添加了
<activity android:name="com.google.android.apps.nbu.files.offlinesharing.ui.shareintent.ShareIntentActivity" android:exported="true" android:excludeFromRecents="true" android:launchMode="singleInstance">
<data android:mimeType="audio/*"/>
<data android:mimeType="image/*"/>
</activity>
当上面的代码通过Intent 去获取默认的 music app时候 files go 被调用到。导致music的storage权限没有被添加上现在通过在PMS中,直接通过包名的指定的方式来获取musicPackage ,给music 授予storage权限。