相机意图过滤器不适用于牛轧糖

时间:2018-01-17 11:45:03

标签: android android-intent android-camera

我开发了一个应用程序,它使用相机跟踪您单击的图像。直到Marshmallow,照片被应用程序跟踪,但在Nougat使用相同的代码,应用程序无法跟踪我点击的新图片。

我的CameraReceiver类是

 public class CameraReceiver extends BroadcastReceiver {
 private String pathSplit;
 public void onReceive(Context context, Intent intent) {

    Cursor cursor = context.getContentResolver().query(intent.getData(),
            null, null, null, null);
    if (cursor != null) {
        cursor.moveToFirst();
        String image_path = cursor.getString(cursor.getColumnIndex("_data"));
        String MediaType = intent.getAction().equals("android.hardware.action.NEW_VIDEO") ? "VIDEO" : "IMAGE";
        FilesObservers.postDataCreateEvent("CREATE", image_path, true,MediaType);
        cursor.close();
    }

}




public IntentFilter getCameraFilters() {
    IntentFilter lsIntentFilter = new IntentFilter();
    try {
        lsIntentFilter.addDataType("image/*");
    } catch (IntentFilter.MalformedMimeTypeException e) {
        e.printStackTrace();
    }
    lsIntentFilter.addAction("com.android.camera.NEW_PICTURE");
    lsIntentFilter.addCategory("android.intent.category.DEFAULT");
    return lsIntentFilter;
}

}

并在清单中

<receiver android:name="com.sys.observers.CameraReceiver" />

1 个答案:

答案 0 :(得分:0)

  

我开发了一个应用程序,它使用相机跟踪您点击的图像

不,您正在跟踪某些广播的投放情况。没有要求任何相机应用程序发送这些广播。也:

  • 没有要求相机应用让第三方应用知道何时拍摄照片(事实上,这样做是隐私缺陷)

  • 相机应用无需保存第三方应用可以访问的照片

  

直到Marshmallow,照片被应用程序跟踪

对于您测试的特定相机应用程序,这当然是可能的。

  

但在Nougat中使用相同的代码,应用程序无法跟踪我点击的新图片

那是因为那些广播are no longer supported