通过其他应用程序发送序列化文件

时间:2017-06-17 18:34:40

标签: android

你好,我制作了序列化的目标文件,我想通过,messenger,gmail,短信等发送它。我试图以这种方式发送它,这是从保存到发送的代码。我知道没有一个应用程序与此相关。

groupApp.factory('uploadLogo', ['$http', '$q', '$timeout', function ($http, $q, $timeout) {


var _uploadLogo = function (file) {

    var deferred = $q.defer();
    var controllerQuery = "groupApi/uploadLogo";

    $timeout(function () {
        deferred.notify(true);
    }, 0)


    var _file = new FormData();


    _file.append('file', file, file.name);

    $http.post(controllerQuery, _file, {
        transformRequest: angular.identity,
        headers: { 'Content-Type': undefined },
        enctype: 'multipart/form-data'

    })
      .then(function (result) {


          $timeout(function () {
              deferred.resolve(result);
          }, 200);

      },
          function (error) {

              deferred.reject(error);
          });
    return deferred.promise;

};


return {
    uploadLogo: _uploadLogo,
}

}]);

1 个答案:

答案 0 :(得分:0)

  

您好我制作了序列化的对象文件,我想通过,messenger,gmail,sms等发送它

Do not assume that this file will be usable anywhere

  

我知道没有一个应用程序与此

相关联

大约有零个应用的<activity><intent-filter> <category> */*

另外:

  • ACTION_SENDTO通常需要Urimailto:smsto:计划

  • 您尚未为此文件指定MIME类型(例如,application/octet-stream,因为它没有正式的MIME类型)

  • 不要使用字符串连接来汇编文件路径 - 将new File(getFilesDir() + "ShoppingList.ur")替换为new File(getFilesDir(), "ShoppingList.ur")

  • 即使你有一个没有创建它的例外,你也试图使用该文件

  • 您正在删除该文件,而其他应用程序将有机会对其执行任何操作

  • 其他应用无法访问您应用的getFilesDir(),因此无法使用此文件

  • 对于Uri为24或更高的应用,Android 7.0上禁止file使用Uri.fromFile()方案(targetSdkVersion