2

Android ギャラリーから画像を取得し、後で参照できるように Parse.com クラウドに保存する簡単なサインアップ ページを作成しようとしています。コードは次のとおりです。

これは、参照ボタンをタップしたときに実行されるメソッドです...

public void choosePic(View v)
{
    Intent i = new Intent(
            Intent.ACTION_PICK,
            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

    startActivityForResult(i, RESULT_LOAD_IMAGE);
}

このメソッドは、画像の選択時に実行されます。

protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
        Uri selectedImage = data.getData();
        String[] filePathColumn = { MediaStore.Images.Media.DATA };
        Bitmap bitmap = null;
        try {
            bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage);
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos);

            byte[] image = bos.toByteArray();

           profilePic = new ParseFile("image2.jpg", image);
        } catch (FileNotFoundException e) {

            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        Cursor cursor = getContentResolver().query(selectedImage,
                filePathColumn, null, null, null);
        cursor.moveToFirst();

        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        String picturePath = cursor.getString(columnIndex);
        cursor.close();



    }


}

サインアップボタンのタップ時に実行されるメソッドです

public void signupClicked(View arg0)
{
    // Retrieve the text entered from the EditText
    usernametxt = username.getText().toString();
    passwordtxt = password.getText().toString();
    addresstxt = address.getText().toString();
    emailtxt = email.getText().toString();

    // Force user to fill up the form
    if (usernametxt.equals("") && passwordtxt.equals("")) {
        Toast.makeText(getApplicationContext(),
                "Please complete the sign up form",
                Toast.LENGTH_LONG).show();

    } else {
        // Save new user data into Parse.com Data Storage
        ParseUser user = new ParseUser();
        user.setUsername(usernametxt);
        user.setPassword(passwordtxt);
        user.setEmail(emailtxt);


        // other fields can be set just like with ParseObject
        user.put("address", addresstxt);
        user.put("photo", profilePic);



        user.signUpInBackground(new SignUpCallback() {

            @Override
            public void done(com.parse.ParseException e) {
                // TODO Auto-generated method stub
                if (e == null) {
                    // Show a simple Toast message upon successful registration
                    Toast.makeText(getApplicationContext(),
                            "Successfully Signed up, please log in.",
                            Toast.LENGTH_LONG).show();

                } else {
                    Toast.makeText(getApplicationContext(),
                            "Sign up Error", Toast.LENGTH_LONG)
                            .show();

                }
            }

        });

    }
       Intent intent = new Intent(this,MainActivity.class);
        startActivity(intent);     
}

これは、Parse.com クラウドの写真データ オブジェクトをクリックしたときに表示されるエラーです。

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>534755F82D0FFA4C</RequestId>
<HostId>
tPHdYj7iVHL67mYKoyXwf6GtbzQr6TO5r5Xfmj3usbA5HQcGd/vEpnr3DGDaAhac
</HostId>
</Error>
4

0 に答える 0