相关疑难解决方法(0)

从mediastore获取URI的文件名和路径

onActivityResult从mediastore图像选择返回,我可以使用以下内容获取图像的URI:

Uri selectedImage = data.getData();
Run Code Online (Sandbox Code Playgroud)

将其转换为字符串可以得到:

content://media/external/images/media/47
Run Code Online (Sandbox Code Playgroud)

或者路径给出:

/external/images/media/47
Run Code Online (Sandbox Code Playgroud)

但是我似乎无法找到将其转换为绝对路径的方法,因为我想将图像加载到位图而不必将其复制到某处.我知道这可以使用URI和内容解析器完成,但这似乎在重新启动手机时中断,我想MediaStore在重新启动之间不会保持其编号相同.

android uri absolute-path mediastore

376
推荐指数
12
解决办法
32万
查看次数

Android联系人在单个数据库查询中显示名称和电话号码?

我正在尝试从本机数据库中获取其显示名称和电话号码(任意或所有)的联系人列表.有许多方法可以通过对手机数据库的多个查询来获取此信息,但这会带来相当大的开销.

这是我一直在研究的查询,但结果却是

Uri uri                = ContactsContract.Contacts.CONTENT_URI;
String[] projection    = new String[] { ContactsContract.Contacts._ID,
                                        ContactsContract.Contacts.DISPLAY_NAME,
                                        ContactsContract.CommonDataKinds.Phone.NUMBER};
String selection       = ContactsContract.Contacts.HAS_PHONE_NUMBER + " = '1'";
String[] selectionArgs = null;
String sortOrder       = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";

Cursor people          = getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder);

int index_id    = people.getColumnIndex(ContactsContract.Contacts._ID);
int indexName   = people.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
int indexNumber = people.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);

people.moveToFirst();
do {
    String _id    = people.getString(index_id);
    String name   = people.getString(indexName);
    String number = people.getString(indexNumber);
    // Do work...
} while (people.moveToNext());
Run Code Online (Sandbox Code Playgroud)

这是由此产生的错误.

E/AndroidRuntime(21549): Caused …
Run Code Online (Sandbox Code Playgroud)

android contacts contactscontract

49
推荐指数
2
解决办法
7万
查看次数

将图像保存在图库中

这是我的代码,我希望保存图像按钮只是将图像保存到图库.

package com.nk_apps.hip.hop.lyric.wallpapers;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class Wallpapers extends Activity implements OnClickListener {
}
    ImageView display;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.wallpapers);

        display = (ImageView) findViewById(R.id.IVDisplay);
        ImageView image1 = (ImageView) findViewById(R.id.IVimage1);
        ImageView image2 = (ImageView) findViewById(R.id.IVimage2);
        ImageView image3 = (ImageView) findViewById(R.id.IVimage3);
        ImageView image4 = (ImageView) findViewById(R.id.IVimage4);
        ImageView image5 = (ImageView) findViewById(R.id.IVimage5);
        ImageView image6 = (ImageView) findViewById(R.id.IVimage6);
        ImageView image7 = (ImageView) findViewById(R.id.IVimage7);
        ImageView image8 …
Run Code Online (Sandbox Code Playgroud)

android image gallery save

7
推荐指数
1
解决办法
1万
查看次数

在片段中使用 onActivityResult

您好,我想从联系人中选择一个电话号码并将其插入到 EditText 中

但它在片段中不起作用我在活动中使用它并且它有效。请你能帮我我应该如何改变它<谢谢

public class Encrypt extends Fragment {

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.encrypt, null);  
        phoneNumberDisplay = (EditText) v.findViewById(R.id.editTextPhoneNumber);
        contactsButton=(Button)v.findViewById(R.id.buttonContacts);
        contactsButton.setOnClickListener(new OnClickListener() {           
            @Override
            public void onClick(View v) {   
                if(v==contactsButton){
                    Intent intent=new Intent(Intent.ACTION_PICK,Contacts.CONTENT_URI);
                    intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
                    startActivityForResult(intent, 1);
                }
            }
        });

        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (resultCode == RESULT_OK) {
                Uri ur = data.getData();
                Cursor c = managedQuery(ur, null, null, null, null);
                if (c.moveToFirst()) {
                    String s …
Run Code Online (Sandbox Code Playgroud)

java android onactivityresult

5
推荐指数
1
解决办法
4562
查看次数