我的應用程序註冊爲目的("android.intent.action.MEDIA_BUTTON"
)來處理有線耳機使用鍵下面的代碼可以在任何應用程序廣播意圖與動作名稱「android.intent.action.MEDIA_BUTTON」
<receiver
android:name=".HeadsetEventReceiver"
android:enabled="true" >
<intent-filter android:priority="2147483647" >
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
接收機HeadsetEventReceiver
壓制的做一些操作在接受這個意圖。
現在我有一個示例應用程序廣播一個意向行動"android.intent.action.MEDIA_BUTTON"
與有效的KeyEvent對象使用下面的代碼。
Intent newIntent = new Intent("android.intent.action.MEDIA_BUTTON") ;
KeyEvent event = new KeyEvent(System.currentTimeMillis(), System.currentTimeMillis(), KeyEvent.ACTION_DOWN, 79, 1, 1, 1, 1, 1, InputDevice.SOURCE_TOUCHPAD);
newIntent.putExtra(Intent.EXTRA_KEY_EVENT, event);
getApplicationContext().sendBroadcast(newIntent);
我的應用程序正在接收這個意圖並處理這個數據,就好像它實際上是由於耳機按鍵而廣播的。
我的查詢是當任何應用程序試圖發送廣播與本地意圖(例如:"android.intent.action.BOOT_COMPLETED"
)securityException被拋出。爲什麼它不適用於上述意圖("android.intent.action.MEDIA_BUTTON"
)。
你正在使用什麼api?因爲它不會發生在api> = 15中。 – Pankaj
我使用api 21.我的問題是爲什麼當應用程序嘗試使用Intent(「android.intent.action.MEDIA_BUTTON」)發送Broadcast時不引發securityException?它與偵聽mediaButton事件偵聽器無關。 – Mallik