and*_*scv 5 android broadcastreceiver android-intent android-broadcast
我有一个 Android 应用程序可以处理我的特定存储设备的插件。当设备安装在系统上时,我希望能够通过我的显示活动以特定方式显示存储设备的内容。我遇到的问题是,在某些手机上,系统还会处理ACTION_MEDIA_MOUNTED广播,然后自动启动 Android 文件资源管理器(它将屏幕从我的应用中移开)。如果可能的话,这就是我试图阻止的。我正在注册一个广播接收器来收听ACTION_MEDIA_MOUNTED广播,然后在收到此广播后立即启动我的显示活动,如下所示:
BroadcastReceiver mediaMountedReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
Log.d("debug", "HEAR YE! HEAR YE! THE MEDIA HAS BEEN MOUNTED!");
if (isOrderedBroadcast()) {
abortBroadcast();
}
Intent i = new Intent(getApplicationContext(), Display.class);
startActivity(i);
}
};
...
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_MEDIA_MOUNTED);
filter.addDataScheme("file");
filter.setPriority(999);
registerReceiver(mediaMountedReceiver, filter);
Run Code Online (Sandbox Code Playgroud)
我收到广播没问题,我尝试通过调用取消它,abortBroadcast()但显然ACTION_MEDIA_MOUNTED不是有序广播。有什么方法可以阻止此广播的传播或将所有存储挂载/卸载广播定向到我的应用程序?
如果这是不可能的,有没有人有关于如何处理这个问题的提示或解决方法?
| 归档时间: |
|
| 查看次数: |
1749 次 |
| 最近记录: |