Android studio 如何禁用拾取联系人请求

Android studio 如何禁用拾取联系人请求,android-studio,android,Android Studio,Android,我正在开发一个预打包的应用程序,它有一个联系人选择器选项,我需要禁用它,因为它对我们没有任何用途。这是针对使用个人地址的单用户搜索。我在这里找到了一篇关于如何添加它的文章: 他们列出的代码如下: private void pickContact() { // Create an intent to "pick" a contact, as defined by the content provider URI Intent intent = new Intent(Intent.A

我正在开发一个预打包的应用程序,它有一个联系人选择器选项,我需要禁用它,因为它对我们没有任何用途。这是针对使用个人地址的单用户搜索。我在这里找到了一篇关于如何添加它的文章:

他们列出的代码如下:

private void pickContact() {
    // Create an intent to "pick" a contact, as defined by the content provider URI
    Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
    startActivityForResult(intent, PICK_CONTACT_REQUEST);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // If the request went well (OK) and the request was PICK_CONTACT_REQUEST
    if (resultCode == Activity.RESULT_OK && requestCode == PICK_CONTACT_REQUEST) {
        // Perform a query to the contact's content provider for the contact's name
        Cursor cursor = getContentResolver().query(data.getData(),
        new String[] {Contacts.DISPLAY_NAME}, null, null, null);
        if (cursor.moveToFirst()) { // True if the cursor is not empty
            int columnIndex = cursor.getColumnIndex(Contacts.DISPLAY_NAME);
            String name = cursor.getString(columnIndex);
            // Do something with the selected contact's name...
        }
    }
}
我只想禁用这个。我可以从调用它们的文件夹中删除图像,但仍然会留下一个活动的角落。如果让它保持这种状态,那将是糟糕的可用性。我试着从代码中注释和删除这些内容,它只会抛出2-3个错误

这是my HomeActivity.java文件,显示以下代码:

package com.votinginfoproject.VotingInformationProject.activities;

import android.app.LoaderManager;
import android.content.CursorLoader;
import android.content.Intent;
import android.content.Loader;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;

import com.google.android.gms.analytics.GoogleAnalytics;
import com.votinginfoproject.VotingInformationProject.R;
import com.votinginfoproject.VotingInformationProject.fragments.HomeFragment;
import com.votinginfoproject.VotingInformationProject.models.VIPApp;
import com.votinginfoproject.VotingInformationProject.models.VIPAppContext;
import com.votinginfoproject.VotingInformationProject.models.VoterInfo;


public class HomeActivity extends FragmentActivity implements HomeFragment.OnInteractionListener,
        LoaderManager.LoaderCallbacks<Cursor> {

    static final int PICK_CONTACT_REQUEST = 1;
    VIPApp app;
    Uri contactUri;
    EditText addressView;
    LoaderManager loaderManager;

    public String getSelectedParty() {
        return selectedParty;
    }

    public void setSelectedParty(String selectedParty) {
        this.selectedParty = selectedParty;
        app.setSelectedParty(selectedParty);
    }

    String selectedParty;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        app = new VIPAppContext((VIPApp) getApplicationContext()).getVIPApp();
        loaderManager = getLoaderManager();
        selectedParty = "";
        contactUri = null;
        addressView = (EditText)findViewById(R.id.home_edittext_address);

        // Get analytics tracker (should auto-report)
        app.getTracker(VIPApp.TrackerName.APP_TRACKER);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.home, menu);
        return true;
    }

    @Override
    protected void onStop() {
        super.onStop();

        //Stop analytics tracking
        GoogleAnalytics.getInstance(this).reportActivityStop(this);
    }

    @Override
    protected void onStart() {
        super.onStart();

        //Get an Analytics tracker to report app starts, uncaught exceptions, etc.
        GoogleAnalytics.getInstance(this).reportActivityStart(this);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        return id == R.id.action_settings || super.onOptionsItemSelected(item);
    }

    public void onGoButtonPressed(View view) {
        Intent intent = new Intent(this, VIPTabBarActivity.class);
        startActivity(intent);
    }

    public void onSelectContactButtonPressed(View view) {
        // contact picker intent to return an address; will only show contacts that have an address
        Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI);
        startActivityForResult(intent, PICK_CONTACT_REQUEST);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // Check which request we're responding to
        if (requestCode == PICK_CONTACT_REQUEST) {
            // Make sure the request was successful
            if (resultCode == RESULT_OK) {
                // The user picked a contact.
                // The Intent's data Uri identifies which contact was selected.
                // Get the URI that points to the selected contact
                contactUri = data.getData();

                // restart loader, if a contact was already selected
                loaderManager.destroyLoader(PICK_CONTACT_REQUEST);

                // start async query to get contact info
                loaderManager.initLoader(PICK_CONTACT_REQUEST, null, this);
            } else {
                // PASS (user didn't pick an address)
            }
        }
    }

    public void searchedAddress(VoterInfo voterInfo) {
        // set VoterInfo object on app singleton
        app.setVoterInfo(voterInfo, selectedParty);
    }

    @Override
    public Loader<Cursor> onCreateLoader(int id, Bundle args) {
        if (contactUri == null) {
            return null;
        }

        String[] projection = { ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS };
        return new CursorLoader(this, contactUri, projection, null, null, null);
    }

    @Override
    public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
        if (data.getCount() > 0) {
            data.moveToFirst();
            // get result with single column, named data1
            String address = data.getString(0);
            Log.d("HomeActivity", "Got cursor result: " + address);

            // set address found in view
            addressView.setText(address);

            // initate search with new address
            HomeFragment myFragment = (HomeFragment)getSupportFragmentManager().findFragmentById(R.id.home_fragment);
            myFragment.makeElectionQuery();
        } else {
            Log.e("HomeActivity", "Cursor got no results!");
        }
    }

    @Override
    public void onLoaderReset(Loader<Cursor> loader) {
        // PASS
    }
}
package com.votinginfoproject.VotingInformationProject.activities;
导入android.app.LoaderManager;
导入android.content.CursorLoader;
导入android.content.Intent;
导入android.content.Loader;
导入android.database.Cursor;
导入android.net.Uri;
导入android.os.Bundle;
导入android.provider.contacts合同;
导入android.support.v4.app.FragmentActivity;
导入android.util.Log;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.widget.EditText;
导入com.google.android.gms.analytics.GoogleAnalytics;
导入com.votinginfoproject.VotingInformationProject.R;
导入com.votinginfoproject.VotingInformationProject.fragments.HomeFragment;
导入com.votinginfoproject.VotingInformationProject.models.VIPApp;
导入com.votinginfoproject.VotingInformationProject.models.VIPAppContext;
导入com.votinginfoproject.VotingInformationProject.models.VoterInfo;
公共类HomeActivity扩展FragmentActivity实现HomeFragment.OnInteractionListener,
LoaderManager.LoaderCallbacks{
静态最终int选择联系人请求=1;
VIPApp应用程序;
Uri-contactUri;
编辑文本地址视图;
装载机管理器装载机管理器;
公共字符串getSelectedParty(){
返回所选的一方;
}
public void setSelectedParty(字符串selectedParty){
this.selectedParty=selectedParty;
应用程序设置选定方(选定方);
}
字符串选择方;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
app=new VIPAppContext((VIPApp)getApplicationContext()).getVIPApp();
loaderManager=getLoaderManager();
选定方=”;
contactUri=null;
addressView=(EditText)findViewById(R.id.home\u EditText\u地址);
//获取分析跟踪程序(应自动报告)
app.getTracker(VIPApp.TrackerName.app\u TRACKER);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.home,menu);
返回true;
}
@凌驾
受保护的void onStop(){
super.onStop();
//停止分析跟踪
GoogleAnalytics.getInstance(this).reportActivityStop(this);
}
@凌驾
受保护的void onStart(){
super.onStart();
//获取分析跟踪程序以报告应用程序启动、未捕获的异常等。
GoogleAnalytics.getInstance(this).reportActivityStart(this);
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
//处理操作栏项目单击此处。操作栏将
//自动处理Home/Up按钮上的点击,只要
//在AndroidManifest.xml中指定父活动时。
int id=item.getItemId();
返回id==R.id.action|u设置| | super.onOptionsItemSelected(项目);
}
按下公共无效ONGOBUTTON(视图){
意向意向=新意向(此,viptabaractivity.class);
星触觉(意向);
}
按下SelectContactButton上的公共无效(查看){
//联系人选取器,用于返回地址;将仅显示具有地址的联系人
意向意向=新意向(Intent.ACTION\u PICK,contacts contract.commondatatypes.StructuredPostal.CONTENT\u URI);
startActivityForResult(意向、选择联系人请求);
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
//检查我们正在响应的请求
if(requestCode==选择联系人请求){
//确保请求成功
if(resultCode==RESULT\u OK){
//用户选择了一个联系人。
//意图的数据Uri标识选择了哪个联系人。
//获取指向所选联系人的URI
contactUri=data.getData();
//如果已选择联系人,则重新启动加载程序
loaderManager.destroyLoader(选择联系人请求);
//启动异步查询以获取联系人信息
initLoader(PICK_CONTACT_请求,null,this);
}否则{
//通过(用户未选择地址)
}
}
}
公共无效搜索地址(VoterInfo VoterInfo){
//在应用程序singleton上设置VoterInfo对象
应用程序setVoterInfo(voterInfo,选定方);
}
@凌驾
公共加载器onCreateLoader(int-id,Bundle-args){
if(contactUri==null){
返回null;
}
字符串[]投影={ContactsContract.CommonDataTypes.StructuredPostal.FORMATTED_ADDRESS};
返回新的游标装入器(this、contactUri、projection、null、null、null);
}
@凌驾
public void onLoadFinished(加载器、光标数据){
if(data.getCount()>0){
data.moveToFirst();
//使用名为data1的单列获取结果
字符串地址=data.getString(0);
Log.d(“HomeActivity”,“Get cursor result:”+地址);
//设置在vi中找到的地址