gpt4 book ai didi

java - Android 应用程序在获取 IMEI 号码时崩溃

转载 作者:行者123 更新时间:2023-11-30 03:08:15 25 4
gpt4 key购买 nike

我有下面的类,它只设置为获取设备 ID。

package com.example.bootstart;


import android.app.Activity;
import android.content.Context;
import android.telephony.TelephonyManager;

public class IMEI extends Activity {
public String get_dev_id(){

//Getting the Object of TelephonyManager
TelephonyManager tManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

//Getting IMEI Number of Devide
String Imei=tManager.getDeviceId();

return Imei;
}
}

我的 list 中设置了以下权限。

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

我尝试通过其他类访问 get_dev_id 函数

package com.example.common;

import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import com.example.bootstart.IMEI;

import android.os.AsyncTask;
import android.util.Log;

public class AsyncSendData extends AsyncTask<String, Void, Boolean> {

private static final String LOGTAG = "SENDSERVER";

@Override
protected Boolean doInBackground(String... params) {
Log.i(LOGTAG, "FUNction Called");
String url = params[0]; // URL.
String lati = params[1];
String longi = params[2];
String welawa = params[3];

HttpClient httpClient = new DefaultHttpClient();
// Creating HTTP Post
HttpPost httpPost = new HttpPost(url);
// "http://www.domain.com/nv/maps/track_post");

// Building post parameters
// key and value pair
Log.i(LOGTAG, "Before Imei");
IMEI imei = new IMEI();
String imei_num = imei.get_dev_id(); //***************IMEI Called Here****
Log.i(LOGTAG, "After Imei");

List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(4);
nameValuePair.add(new BasicNameValuePair("imei", imei_num));
nameValuePair.add(new BasicNameValuePair("welawa", welawa));
nameValuePair.add(new BasicNameValuePair("lat", lati));
nameValuePair.add(new BasicNameValuePair("long", longi));
Log.i(LOGTAG, "After Name Value");
try {
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
Log.i(LOGTAG, "After Response");
HttpResponse response = httpClient.execute(httpPost);
Log.i(LOGTAG, "Response " + response);
if (response != null) {
return response.getStatusLine().getStatusCode() == 200;
}
} catch (Exception e) {
//
Log.e(LOGTAG, e.getMessage());
}
return false;
}

}

日志在“Log.i(LOGTAG, “Before Imei”);”之后没有输出任何内容。知道会发生什么吗?

非常感谢您的帮助。

最佳答案

//您需要将IMEI activity 更改为class

public static class IMEI {

public static String get_dev_id(Context ctx){

//Getting the Object of TelephonyManager
TelephonyManager tManager = (TelephonyManager)ctx.getSystemService(Context.TELEPHONY_SERVICE);

//Getting IMEI Number of Devide
String Imei=tManager.getDeviceId();

return Imei;
}
}

//你需要调用它

String imei_num = IMEI.get_dev_id(context);

已编辑:

您可以改用静态..

关于java - Android 应用程序在获取 IMEI 号码时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21423394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com