2016-03-23 17 views
0

私のアプリケーションでは、Media_Scanner_Finishedのブロードキャストを受信しようとしています。しかし、受信機は呼び出されていません。 は、ここに私の放送受信機クラスでは私のコード -Android Intent action.MEDIA_SCANNER_FINISHED

'<?xml version="1.0" encoding="utf-8"?>' 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="objectdistance.ankeshkjaisansaria.ram.sita.MyApp"> 

<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"/> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <receiver 

android:name="objectdistance.ankeshkjaisansaria.ram.sita.myApp.broadcastreceiver" 
     android:enabled="true" 
     android:exported="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.MEDIA_SCANNER_FINISHED"/> 
      <action android:name="android.intent.action.MEDIA_SCANNER_STARTED"/> 
      <action android:name="android.intent.action.MEDIA_SCANNER_STARTED"/> 
      <data android:scheme="file" /> 
     </intent-filter> 
    </receiver> 


</application> 

</manifest> 

です: -

public class broadcastreceiver extends BroadcastReceiver { 
BroadcastReceiver mMediaScannerReceiver; 
@Override 
public void onReceive(Context context, Intent intent) { 

    // TODO Auto-generated method stub 
    Log.i("INFO", "Enter BroadcastReceiver"); 


} 


} 

私は問題がMedia_Scanner放送へのアクセスを得るために、マニフェストファイルに必要な権限に関連していると思います。

もう1つのことは、次の点です。 - コンテンツプロバイダMedia Imageデータベースが更新されると、Media_Scanner_Startedが呼び出されるのですか?

答えて

1

なくマニフェストよりもコードで受信機を追加:

final IntentFilter filter = new IntentFilter(); 
    filter.addAction(Intent.ACTION_MEDIA_SCANNER_STARTED); 
    filter.addDataScheme("file"); 
    scannerStartedReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(final Context context, final Intent intent) { 
     } 
    }