Google Play Music ไม่รองรับ media_play_from_search อีกต่อไป

Google Play Music จะไม่ปรากฏในรายการ "ดำเนินการให้เสร็จสิ้นโดยใช้" สำหรับ INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH Intent อีกต่อไป ฉันรู้ว่าสิ่งนี้เคยใช้งานได้บน 2.3 และ Pandora และ Spotify ยังคงแสดงอยู่ มีใครประสบปัญหานี้มาก่อนหรือไม่

Intent intent = new Intent(MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH); 
intent.putExtra(SearchManager.QUERY, artistName); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent);

เมื่อดู APK ของเพลง ฉันยังคงพบว่ากิจกรรมยังคงมีอยู่พร้อมกับการกระทำที่ถูกต้องในตัวกรองเจตนา แต่ดูเหมือนว่าพวกเขาจะขาดค่าเริ่มต้นของหมวดหมู่ที่โพสต์ต้นฉบับใน โพสต์ในบล็อกที่ประกาศคุณลักษณะนี้

<activity android:name="com.google.android.music.VoiceActionsActivity" android:exported="true" android:process=":ui" android:launchMode="singleTask">
    <intent-filter>
        <action android:name="android.media.action.MEDIA_PLAY_FROM_SEARCH" />
    </intent-filter>
</activity>

person smith324    schedule 13.01.2014    source แหล่งที่มา
comment
การดูซอร์สโค้ดของ VoiceActionsActivity ทำให้ฉันสรุปได้ว่า พวกเขาลืมบรรทัดนี้เพียงบรรทัดเดียวเท่านั้น ดูเหมือนว่าจะมีการใช้การค้นหาสื่อ ไม่มีใครรู้วิธีอื่นในการเปิดตัว Google Play Music หรือไม่ Shazam สามารถทำได้ด้วยการเปิดตัวแอ็กชั่น VIEW Intent พร้อมข้อมูล play.google.com/store/music/ ดังนั้นพวกเขาจึงดึงรหัสเพลงภายในกลับมา อาจจะผ่านหนึ่งใน GMusic-API ที่ไม่เป็นทางการใช่ไหม   -  person Nils Borrmann    schedule 13.02.2014


คำตอบ (1)


ฉันพบวิธีแก้ไขปัญหานี้: คุณสามารถตั้งค่า ClassName สำหรับ Intent เป็น VoiceActionsActivity ด้วยตนเองได้ดังนี้:

Intent intent = new Intent();
intent.setClassName("com.google.android.music","com.google.android.music.VoiceActionsActivity");
intent.setAction(MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH);
intent.putExtra(SearchManager.QUERY, "chromeo - fancy footwork");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

เห็นได้ชัดว่า Google Music ยังคงไม่ปรากฏในกล่องโต้ตอบตัวเลือก แต่คุณสามารถเพิ่มปุ่มที่กำหนดเองซึ่งจะเปิด Google Music

แก้ไข: สามารถทำได้จริง ดูคำถามนี้: เพิ่มหรือลบตัวเลือกจาก createChooser อย่างไรก็ตาม การดำเนินการนี้จะลบปุ่ม "ตั้งค่าเริ่มต้น" ออกจากแอป ดังนั้นจึงไม่สมบูรณ์นัก อีกทางเลือกหนึ่งคือการสร้างตัวเลือกของคุณเองโดยใช้ getPackageManager().queryIntentActivities()

person Nils Borrmann    schedule 13.02.2014