我有下面的類,它只被設置爲獲取設備ID。獲取IMEI號碼時Android應用程序崩潰
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;
}
}
我在我的清單中有以下權限集。
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
我嘗試通過
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;
}
}
日誌從另一個類訪問get_dev_id功能不把任何出 「Log.i(LOGTAG, 」維明之前「)後放;」。 關於可能會發生什麼的任何想法?
非常感謝您的幫助。
按照這個來獲取imei數http://stackoverflow.com/a/3009341/9 42224 –
你正在使用哪個android版本? – user3243163