How to set right the file path for reading, after selecting the file with file picker in android? - Android Q&A, Help & Troubleshooting

In the below attached code , I am able to select file from internal storage using file picker, but unable to open the file for reading the file. code for reading the file is written, looks like its not picking the right path for opening the file, so throwing exception. Can anyone help me diagnose the issue.
package android.ble.internal_storage;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.iutputStreamWriter;
public class MainActivity extends Activity {
private static final int PERMISSION_WRITE_STORAGE = 11;
private static final int PERMISSION_READ_EXTERNAL_STORAGE = 12;
private static final int CHOOSE_TXT_FROM_DEVICE = 1;
EditText textmsg;
static final int READ_BLOCK_SIZE = 100;
@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textmsg = (EditText) findViewById(R.id.editText1);
}
public void WriteBtn(View v) {
try {
FileOutputStream fileout = openFileOutput("mytextfile.txt", MODE_PRIVATE); //mytextfile.txt
OutputStreamWriter outputWriter = new OutputStreamWriter(fileout);
Context context = getApplicationContext();
String folder = context.getFilesDir().getAbsolutePath();
outputWriter.write(folder + " ");
outputWriter.write(textmsg.getText().toString());
outputWriter.close();
Toast.makeText(getBaseContext(), "File saved successfully!",
Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
}
}
@override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CHOOSE_TXT_FROM_DEVICE && resultCode == Activity.RESULT_OK) {
if (data != null) {
Read_from_file(data.getData().getPath());
}
}
}
public void ReadBtn(View v) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
startActivityForResult(intent, CHOOSE_TXT_FROM_DEVICE);
}
public void Read_from_file(String file_path) {
File fileMedia = new File(file_path);
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[] {
Manifest.permission.WRITE_EXTERNAL_STORAGE
}, PERMISSION_WRITE_STORAGE);
}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[] {
Manifest.permission.READ_EXTERNAL_STORAGE
}, PERMISSION_READ_EXTERNAL_STORAGE);
}
try {
FileInputStream fileIn = openFileInput(fileMedia.getName());
InputStreamReader InputRead = new InputStreamReader(fileIn);
char[] inputBuffer = new char[READ_BLOCK_SIZE];
String s = "";
int charRead;
while ((charRead = InputRead.read(inputBuffer)) > 0) {
String readstring = String.copyValueOf(inputBuffer, 0, charRead);
s += readstring;
}
InputRead.close();
textmsg.setText(s);
} catch (Exception e) {
e.printStackTrace();
}
}
}

You didn't attach anything. You could also just post a snippet:
[code]in.read(buf);[/code]

Renate said:
You didn't attach anything. You could also just post a snippet:
Code:
in.read(buf);
Click to expand...
Click to collapse
I have pasted the code...

Please use [code="java"] [/code] markup syntax. I can't read gobble-dee-gook.
Spoiler: Original code
Java:
package android.ble.internal_storage;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class MainActivity extends Activity {
private static final int PERMISSION_WRITE_STORAGE = 11;
private static final int PERMISSION_READ_EXTERNAL_STORAGE = 12;
private static final int CHOOSE_TXT_FROM_DEVICE = 1;
EditText textmsg;
static final int READ_BLOCK_SIZE = 100;
@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textmsg = (EditText) findViewById(R.id.editText1);
}
public void WriteBtn(View v) {
try {
FileOutputStream fileout = openFileOutput("mytextfile.txt", MODE_PRIVATE); //mytextfile.txt
OutputStreamWriter outputWriter = new OutputStreamWriter(fileout);
Context context = getApplicationContext();
String folder = context.getFilesDir().getAbsolutePath();
outputWriter.write(folder + " ");
outputWriter.write(textmsg.getText().toString());
outputWriter.close();
Toast.makeText(getBaseContext(), "File saved successfully!",
Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
}
}
@override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CHOOSE_TXT_FROM_DEVICE && resultCode == Activity.RESULT_OK) {
if (data != null) {
Read_from_file(data.getData().getPath());
}
}
}
public void ReadBtn(View v) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
startActivityForResult(intent, CHOOSE_TXT_FROM_DEVICE);
}
public void Read_from_file(String file_path) {
File fileMedia = new File(file_path);
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[] {
Manifest.permission.WRITE_EXTERNAL_STORAGE
}, PERMISSION_WRITE_STORAGE);
}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[] {
Manifest.permission.READ_EXTERNAL_STORAGE
}, PERMISSION_READ_EXTERNAL_STORAGE);
}
try {
FileInputStream fileIn = openFileInput(fileMedia.getName());
InputStreamReader InputRead = new InputStreamReader(fileIn);
char[] inputBuffer = new char[READ_BLOCK_SIZE];
String s = "";
int charRead;
while ((charRead = InputRead.read(inputBuffer)) > 0) {
String readstring = String.copyValueOf(inputBuffer, 0, charRead);
s += readstring;
}
InputRead.close();
textmsg.setText(s);
} catch (Exception e) {
e.printStackTrace();
}
}
}
The problem is that your intent.getData() is returning a content URI, not a file URI. There is no path.
https://developer.android.com/reference/android/content/Intent#ACTION_GET_CONTENT
https://developer.android.com/reference/android/content/ContentResolver#openInputStream(android.net.Uri)
Java:
Uri uri = intent.getData();
ContentResolver cr = getContentResolver();
InputStream in = cr.openInputStream(uri);

Renate said:
Please use
Java:
markup syntax. I can't read gobble-dee-gook.
Spoiler: Original code
Java:
package android.ble.internal_storage;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class MainActivity extends Activity {
private static final int PERMISSION_WRITE_STORAGE = 11;
private static final int PERMISSION_READ_EXTERNAL_STORAGE = 12;
private static final int CHOOSE_TXT_FROM_DEVICE = 1;
EditText textmsg;
static final int READ_BLOCK_SIZE = 100;
@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textmsg = (EditText) findViewById(R.id.editText1);
}
public void WriteBtn(View v) {
try {
FileOutputStream fileout = openFileOutput("mytextfile.txt", MODE_PRIVATE); //mytextfile.txt
OutputStreamWriter outputWriter = new OutputStreamWriter(fileout);
Context context = getApplicationContext();
String folder = context.getFilesDir().getAbsolutePath();
outputWriter.write(folder + " ");
outputWriter.write(textmsg.getText().toString());
outputWriter.close();
Toast.makeText(getBaseContext(), "File saved successfully!",
Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
}
}
@override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CHOOSE_TXT_FROM_DEVICE && resultCode == Activity.RESULT_OK) {
if (data != null) {
Read_from_file(data.getData().getPath());
}
}
}
public void ReadBtn(View v) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
startActivityForResult(intent, CHOOSE_TXT_FROM_DEVICE);
}
public void Read_from_file(String file_path) {
File fileMedia = new File(file_path);
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[] {
Manifest.permission.WRITE_EXTERNAL_STORAGE
}, PERMISSION_WRITE_STORAGE);
}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[] {
Manifest.permission.READ_EXTERNAL_STORAGE
}, PERMISSION_READ_EXTERNAL_STORAGE);
}
try {
FileInputStream fileIn = openFileInput(fileMedia.getName());
InputStreamReader InputRead = new InputStreamReader(fileIn);
char[] inputBuffer = new char[READ_BLOCK_SIZE];
String s = "";
int charRead;
while ((charRead = InputRead.read(inputBuffer)) > 0) {
String readstring = String.copyValueOf(inputBuffer, 0, charRead);
s += readstring;
}
InputRead.close();
textmsg.setText(s);
} catch (Exception e) {
e.printStackTrace();
}
}
}
The problem is that your intent.getData() is returning a content URI, not a file URI. There is no path.
https://developer.android.com/reference/android/content/Intent#ACTION_GET_CONTENT
https://developer.android.com/reference/android/content/ContentResolver#openInputStream(android.net.Uri)
Java:
Uri uri = intent.getData();
ContentResolver cr = getContentResolver();
InputStream in = cr.openInputStream(uri);
Click to expand...
Click to collapse
Thank you so much for your help now code is working

Related

[Q] How to monitor socket status on simple tcp client

I have currently created a simple tcp socket client application that sends and receives messages from a dotnet server application I have created. The application itself actually works however there are a few things I would like to know if they are possible or not. Also this is my first ever droid application and my first ever java application so I am sure there is a better way to do what I have written so please go easy on me.
The problem that I am having is I need a way to monitor the status of the socket so that if the connection gets dropped whether it is from the server application ending or a network drop that the android client would disconnect and put a notification on the screen letting me know. Currently if I end the server application nothign happens on the client and it acts like the connection is still open. Granted this is probably due to the way I have it written so I am looking for samples or suggestions on how to change this so I can monitor this. Any help would be great. Eventually this will be put into a much larger project for my home but I am starting off small so I can do it correctly the first time rather than having someing messy later on.
My code is listed below.
Thanks
KJ
Source:
package com.kkearney.tcp1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class TCPClient1Activity extends Activity {
public static final int BUFFER_SIZE = 2048;
private Socket sck = null;
private PrintWriter out = null;
private BufferedReader in = null;
Button btnSend;
Button btnConnect;
Button btnDisconnect;
EditText textOut;
TextView textIn;
String response = "";
final Handler handler = new Handler();
final Runnable updateUI = new Runnable() {
public void run() {
textIn.setText(response);
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textOut = (EditText)findViewById(R.id.txtSend);
textIn = (TextView)findViewById(R.id.txtMSG);
btnSend = (Button)findViewById(R.id.btnSend);
btnConnect = (Button)findViewById(R.id.btnConnect);
btnDisconnect = (Button)findViewById(R.id.btnDisconnect);
}
public void ConnectUp(View view){
OpenConnection();
}
public void OpenConnection(){
new Thread(new Runnable(){
public void run(){
try{
if (sck == null){
sck = new Socket("10.0.0.135",8080);
sck.setKeepAlive(true);
screenConfig();
in = new BufferedReader(new InputStreamReader(sck.getInputStream()));
out = new PrintWriter(sck.getOutputStream());
sendDataWithString("testing 1 2 3");
int charsRead = 0;
char[] buffer = new char[BUFFER_SIZE];
while ((charsRead = in.read(buffer)) != -1) {
response += new String(buffer).substring(0, charsRead);
handler.post( updateUI );
}
screenConfig();
}
}
catch (IOException e) {
System.out.print(e+"");
}
catch (Exception e) {
System.out.print(e+"");
}
}
}).start();
}
public void screenConfig(){
if (sck.isClosed() == false){
textOut.setClickable(true);
btnSend.setClickable(true);
btnDisconnect.setClickable(true);
btnConnect.setClickable(false);
}else{
textOut.setClickable(false);
btnSend.setClickable(false);
btnDisconnect.setClickable(false);
btnConnect.setClickable(true);
}
}
public void SendMessage(View view){
sendDataWithString(textOut.getText().toString());
textOut.setText(null);
}
public void DisConnect(View view){
CloseConnection();
}
public void CloseConnection(){
if (sck != null) {
try {
sck.close();
screenConfig();
} catch (IOException e) {
e.printStackTrace();
} finally {
sck = null;
}
}
}
public void sendDataWithString(String message) {
if (message != null && sck != null) {
out.write(message);
out.flush();
}
}
}

Android SQLLite Sample

Android SQLLite Sample
hello guys im new for xda, and this is a my first thread.please give me your feed back.
DataBase Setting Java File
Code:
package com.example.mydsqllite;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBCon extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "myDoople";
private static final String TABLE_LABELS = "Customer";
private static final String KEY_ID = "ID";
private static final String KEY_NAME = "CName";
public DBCon(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_CATEGORIES_TABLE = "CREATE TABLE " + TABLE_LABELS + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT)";
db.execSQL(CREATE_CATEGORIES_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_LABELS);
onCreate(db);
}
/**
* Inserting new lable into lables table
* */
public void insertLabel(String label) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, label);
db.insert(TABLE_LABELS, null, values);
db.close();
}
/**
* Getting all labels returns list of labels
* */
public void deleteLabel(String label1) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, label1);
db.delete(TABLE_LABELS, KEY_NAME + "=?", new String[] {label1});
db.close();
}
public List<String> getAllLabels() {
List<String> labels = new ArrayList<String>();
String selectQuery = "SELECT * FROM " + TABLE_LABELS;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
labels.add(cursor.getString(1));
} while (cursor.moveToNext());
}
cursor.close();
db.close();
return labels;
}
}
Main Activity File
Code:
package com.example.mydsqllite;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener,
OnItemSelectedListener {
private Spinner sp;
private Button bt;
private Button dl;
private EditText tx;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
UI();
InitSpinner();
}
public void UI() {
sp = (Spinner) findViewById(R.id.spinner1);
sp.setOnItemSelectedListener(this);
bt = (Button) findViewById(R.id.btUpdate);
bt.setOnClickListener(this);
dl = (Button) findViewById(R.id.btDel);
dl.setOnClickListener(this);
tx = (EditText) findViewById(R.id.TxtCus);
}
private void InitSpinner() {
DBCon db = new DBCon(getApplicationContext());
List<String> lables = db.getAllLabels();
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, lables);
dataAdapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp.setAdapter(dataAdapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
String label = arg0.getItemAtPosition(arg2).toString();
Toast.makeText(arg0.getContext(), "Customer Name : " + label,
Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
@Override
public void onClick(View v) {
if (v == bt) {
String label = tx.getText().toString();
if (label.trim().length() > 0) {
DBCon db = new DBCon(getApplicationContext());
db.insertLabel(label);
tx.setText("");
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(tx.getWindowToken(), 0);
InitSpinner();
}
} else if (v == dl) {
String CName = tx.getText().toString();
if (CName.trim().length() > 0) {
DBCon db = new DBCon(getApplicationContext());
db.deleteLabel(CName);
tx.setText("");
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(tx.getWindowToken(), 0);
InitSpinner();
}
} else {
Toast.makeText(getApplicationContext(), "Please Enter Customer Name",
Toast.LENGTH_SHORT).show();
}
}
}
mydoople said:
Android SQLLite Sample
hello guys im new for xda, and this is a my first thread.please give me your feed back.
DataBase Setting Java File
Code:
package com.example.mydsqllite;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBCon extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "myDoople";
private static final String TABLE_LABELS = "Customer";
private static final String KEY_ID = "ID";
private static final String KEY_NAME = "CName";
public DBCon(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_CATEGORIES_TABLE = "CREATE TABLE " + TABLE_LABELS + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT)";
db.execSQL(CREATE_CATEGORIES_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_LABELS);
onCreate(db);
}
/**
* Inserting new lable into lables table
* */
public void insertLabel(String label) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, label);
db.insert(TABLE_LABELS, null, values);
db.close();
}
/**
* Getting all labels returns list of labels
* */
public void deleteLabel(String label1) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, label1);
db.delete(TABLE_LABELS, KEY_NAME + "=?", new String[] {label1});
db.close();
}
public List<String> getAllLabels() {
List<String> labels = new ArrayList<String>();
String selectQuery = "SELECT * FROM " + TABLE_LABELS;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
labels.add(cursor.getString(1));
} while (cursor.moveToNext());
}
cursor.close();
db.close();
return labels;
}
}
Main Activity File
Code:
package com.example.mydsqllite;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener,
OnItemSelectedListener {
private Spinner sp;
private Button bt;
private Button dl;
private EditText tx;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
UI();
InitSpinner();
}
public void UI() {
sp = (Spinner) findViewById(R.id.spinner1);
sp.setOnItemSelectedListener(this);
bt = (Button) findViewById(R.id.btUpdate);
bt.setOnClickListener(this);
dl = (Button) findViewById(R.id.btDel);
dl.setOnClickListener(this);
tx = (EditText) findViewById(R.id.TxtCus);
}
private void InitSpinner() {
DBCon db = new DBCon(getApplicationContext());
List<String> lables = db.getAllLabels();
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, lables);
dataAdapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp.setAdapter(dataAdapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
String label = arg0.getItemAtPosition(arg2).toString();
Toast.makeText(arg0.getContext(), "Customer Name : " + label,
Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
@Override
public void onClick(View v) {
if (v == bt) {
String label = tx.getText().toString();
if (label.trim().length() > 0) {
DBCon db = new DBCon(getApplicationContext());
db.insertLabel(label);
tx.setText("");
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(tx.getWindowToken(), 0);
InitSpinner();
}
} else if (v == dl) {
String CName = tx.getText().toString();
if (CName.trim().length() > 0) {
DBCon db = new DBCon(getApplicationContext());
db.deleteLabel(CName);
tx.setText("");
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(tx.getWindowToken(), 0);
InitSpinner();
}
} else {
Toast.makeText(getApplicationContext(), "Please Enter Customer Name",
Toast.LENGTH_SHORT).show();
}
}
}
Click to expand...
Click to collapse
So what is exactly the point of this thread?

[Q] [Q} Coding a system seting toggle

I am trying to make an app that on launch reads the current on/off(1,0) value of /sys/class/mdnie/mdnie/negative, then changes it to "0 or 1. Someone suggested the below, and I tried it and it does nothing any help is apreciated. Obvously I am a beginner and barely know how to write code but hey gotta start somewhere, this is for a visually impaired friend to toggle negative color mode by assigning a shortcut key to the app. I think it has to do with needing root permision to edit those settings.
Code:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import android.app.Activity;
import android.os.Bundle;
public class ToggleNegativeColorsActivity extends Activity {
private static final String FILEPATH = "/sys/class/mdnie/mdnie/negative";
@Override
public void onCreate(Bundle savedInstanceState) {
try {
String value = readFileAsString(FILEPATH);
if ("1".equals(value.trim())) {
writeStringToFile(FILEPATH, "0");
}
else {
writeStringToFile(FILEPATH, "1");
}}
catch (IOException e) {
e.printStackTrace();
}
finish();
}
// Grabbed from http://stackoverflow.com/questions/1656797/how-to-read-a-file-into-string-in-java
private String readFileAsString(String filePath) throws IOException {
StringBuffer fileData = new StringBuffer();
BufferedReader reader = new BufferedReader(
new FileReader(filePath));
char[] buf = new char[1024];
int numRead;
while((numRead=reader.read(buf)) != -1){
String readData = String.valueOf(buf, 0, numRead);
fileData.append(readData);
}
reader.close();
return fileData.toString();
}
// Grabbed from http://stackoverflow.com/questions/1053467/how-do-i-save-a-string-to-a-text-file-using-java
private void writeStringToFile(String filePath, String value) throws IOException {
PrintWriter out = new PrintWriter(filePath);
out.print(value);
out.close();
}
}

[Q] How can put my own textview in this coding

Hello everyone I want to put my own textview or edittext in canvas1.java or canvasclass.java . Actually this coding are lipitk toolkit handwriting recognition android application. Please help me if possible.
/************************canvas1.java*********************/
package com.canvas;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.Typeface;
import android.inputmethodservice.InputMethodService;
import android.opengl.Visibility;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Vibrator;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.text.method.ScrollingMovementMethod;
import android.util.Log;
import android.view.Display;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.HorizontalScrollView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.Scroller;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.LinearLayout.LayoutParams;
import com.google.tts.TTS;
public class Canvas1 extends Activity implements OnClickListener,OnLongClickListener{
private TTS myTts;
CanvasClass canClass;
private LinearLayout main;
private LinearLayout cenerLayout;
private LinearLayout topLayout;
private LinearLayout subLayout;
private LinearLayout tvLayout;
private LinearLayout SecondLayout;
private LinearLayout mylayout;
private ImageView Exit;
private ScrollView scrllView;
private HorizontalScrollView HorizontalSV;
private TextView[] TV=new TextView[1];
private TextView[] s=new TextView[1];
private TextView[] TViews=new TextView[5];
public final static int mButtonHeight = 220;
public final static int mButtonWidth = 80;
String inst[]=new String[5]; ;
String InstTemp;
int flag=0;
int c0flag=0;
int c1flag=0;
int c2flag=0;
int c3flag=0;
int SpaceSelFlag = 1;
String newStr="";
int height;
public static int width;
Vibrator v;
/** Called when the activity is first created. */
CanvasClass canvasClass = null;
Canvas1 conObj = null;
public final int MY_DATA_CHECK_CODE = 1;
private TextToSpeech mTts = null;
public ProgressDialog dialog;
@override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
width = display.getWidth();
height = display.getHeight();
v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
AssetInstaller assetInstaller = new AssetInstaller(getApplicationContext(), "projects");
try {
assetInstaller.execute();
} catch (IOException e) {
e.printStackTrace();
}
conObj = this;
canvasClass = new CanvasClass(this,conObj);
main = new LinearLayout(this);
main.setOrientation(LinearLayout.VERTICAL);
main.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT));
topLayout = new LinearLayout(this);
topLayout.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
((height/2)+130)));
topLayout.setOrientation(LinearLayout.VERTICAL);
topLayout.setBackgroundColor(0xffffffcc);
topLayout.addView(canvasClass);
/*
mylayout = new LinearLayout(this);
mylayout.setOrientation(LinearLayout.VERTICAL);
mylayout.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
mylayout.setBackgroundColor(Color.WHITE);
for(int i = 0; i <s.length; i++) {
s = new EditText(this);
s.setTextColor(Color.RED);
s.setTextSize(40);
s.setGravity(Gravity.AXIS_Y_SHIFT);
s.setTypeface(null, Typeface.BOLD);
s.setHeight(height/8);
s.setPadding(5, 0, 0, 0);
s.setScroller(new Scroller(this));
s.setVerticalScrollBarEnabled(true);
s.setMovementMethod(ScrollingMovementMethod.getInstance());
mylayout.addView(s);
}
*/
cenerLayout = new LinearLayout(this);
cenerLayout.setOrientation(LinearLayout.VERTICAL);
cenerLayout.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
cenerLayout.setBackgroundColor(Color.GREEN);
for(int i = 0; i <TV.length; i++) {
TV = new TextView(this);
TV.setTextColor(Color.RED);
TV.setTextSize(40);
TV.setGravity(Gravity.CENTER_HORIZONTAL);
TV.setTypeface(null, Typeface.BOLD);
TV.setHeight(height/8);
TV.setPadding(5, 0, 0, 0);
TV.setScroller(new Scroller(this));
TV.setVerticalScrollBarEnabled(true);
TV.setMovementMethod(ScrollingMovementMethod.getInstance());
cenerLayout.addView(TV);
}
SecondLayout = new LinearLayout(this);
SecondLayout.setOrientation(LinearLayout.VERTICAL);
SecondLayout.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
70));
SecondLayout.setBackgroundColor(0xff26466D);
tvLayout = new LinearLayout(this);
tvLayout.setOrientation(LinearLayout.HORIZONTAL);
tvLayout.setLayoutParams(new LinearLayout.LayoutParams(
(width-20),
((height/8)-30)));
for(int i = 0; i < TViews.length; i++) {
TViews = new TextView(this);
TViews.setTextColor(Color.YELLOW);
TViews[0].setText("Suggested words..");
TViews[0].setTextColor(0xffE8E8E8);
TViews.setTextSize(15);
TViews.setGravity(Gravity.CENTER);
TViews.setPadding(10, 0, 0, 0);
TViews.setHeight(((height/8)-30));
TViews.setOnClickListener(this);
tvLayout.addView(TViews);
}
HorizontalSV=new HorizontalScrollView(this);
HorizontalSV.setLayoutParams(new LinearLayout.LayoutParams(
(width-125),
LinearLayout.LayoutParams.WRAP_CONTENT));
HorizontalSV.addView(tvLayout,new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
SecondLayout.addView(HorizontalSV);
subLayout = new LinearLayout(this);
subLayout.setOrientation(LinearLayout.HORIZONTAL);
subLayout.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
((height/8)-16)));
subLayout.setGravity(Gravity.BOTTOM);
Exit = new ImageView(this);
Exit.setImageResource(R.drawable.exit);
Exit.setPadding(30, 0, 0, 0);
Exit.setOnClickListener(this);
subLayout.addView(Exit);
main.addView(cenerLayout);
main.addView(topLayout);
main.addView(subLayout);
setContentView(main);
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
}
protected void onActivityResult(
int requestCode, int resultCode, Intent data) {
if (requestCode == MY_DATA_CHECK_CODE) {
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
// success, create the TTS instance
mTts = new TextToSpeech(this, new OnInitListener() {
public void onInit(int status) {
// TODO Auto-generated method stub
//mTts.speak("Hello World", TextToSpeech.QUEUE_FLUSH, null);
}
});
} else {
// missing data, install it
Intent installIntent = new Intent();
installIntent.setAction(
TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installIntent);
}
}
}
public void onClick(View v) {
if(v==Exit){
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);
}
}
/* This method will handle the swipe across the edge. Calls Freepad once the
touch area reaches the right end of screen */
public void ClearCanvas(){
if(canvasClass != null){
topLayout.removeView(canvasClass);
canvasClass = new CanvasClass(this,conObj);
topLayout.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
((height/2)+130)));
topLayout.addView(canvasClass);
}
}
class ProgressdialogClass extends AsyncTask<Void, Void, String> {
@override
protected String doInBackground(Void... unsued) {
canvasClass.addStroke(canvasClass._currentStroke);
return null;
}
@override
protected void onPostExecute(String sResponse) {
dialog.dismiss();
FreePadCall();
}
@override
protected void onPreExecute(){
dialog = ProgressDialog.show(Canvas1.this, "Processing","Please wait...", true);
}
}
public void CallingMethod(){
ProgressdialogClass ObjAsy=new ProgressdialogClass();
ObjAsy.execute();
}
public void FreePadCall(){
HorizontalSV.setVisibility(View.VISIBLE);
if(canvasClass != null){
topLayout.removeView(canvasClass);
canvasClass.destroyDrawingCache();
canvasClass = new CanvasClass(this,conObj);
topLayout.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
((height/2)+130)));
topLayout.addView(canvasClass);
}
TV[0].setText(canvasClass.character[0]);
String str1 = TV[0].getText().toString();
mTts.speak(str1, 0, null);
}
public boolean onLongClick(View v) {
System.out.println("-----long click------");
return true;
}
int curr_indx = 0;
public void SpeakOutChoices(){
if(canvasClass != null){
topLayout.removeView(canvasClass);
canvasClass = new CanvasClass(this,conObj);
topLayout.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
((height/2)+130)));
topLayout.addView(canvasClass);
}
System.out.println("index"+curr_indx +"---"+ CanvasClass.StrokeResultCount);
if(curr_indx < CanvasClass.StrokeResultCount){
TV[0].setText(CanvasClass.character[curr_indx]);
String Choice1=CanvasClass.character[curr_indx];
mTts.speak(Choice1, 0, null);
curr_indx++;
if(curr_indx == CanvasClass.StrokeResultCount)
curr_indx = 0;
}
}
}
/***************Convasclass.java*******************/
package com.canvas;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
import com.canvas.Canvas1.ProgressdialogClass;
import android.R.color;
import android.R.style;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Point;
import android.graphics.PointF;
import android.graphics.PorterDuff;
import android.graphics.Rect;
import android.os.CountDownTimer;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Display;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.WindowManager;
import android.view.View;
import android.view.View.OnTouchListener;
public class CanvasClass extends View implements OnTouchListener{
private LipiTKJNIInterface _lipitkInterface;
private LipiTKJNIInterface _recognizer;
private Page _page;
private PointF _lastSpot;
public Stroke _currentStroke;
private ArrayList<PointF> _currentStrokeStore;
private ArrayList<Stroke> _strokes;
private Stroke[] _recognitionStrokes;
private ArrayList<Symbol> _symbols;
public static String[] character;
public static int StrokeResultCount=0;
ArrayList<Values> vals = new ArrayList<Values>();
public static int min=480;
public static int max=0;
public static int minX=800;
public static int maxX=0;
public static int XCood=0;
private int mPosX;
private int mPosY;
private int mLastTouchX=0;
private int mLastTouchY=0;
boolean flag=true;
boolean flagbs=true;
public static boolean canvastest=true;
MyCount counter;
MyLongPressCount myLongPress;
BufferedWriter out;
Canvas1 canObj=null;
private static final String TAG = "DrawView";
public CanvasClass(Context context,Canvas1 canObjParam) {
super(context);
canObj=canObjParam;
globalvariable.paint=new Paint();
setFocusable(true);
setFocusableInTouchMode(true);
this.setOnTouchListener(this);
globalvariable.paint.setColor(Color.BLUE);
globalvariable.paint.setAntiAlias(true);
globalvariable.paint.setDither(true);
globalvariable.paint.setStyle(Paint.Style.STROKE);
globalvariable.paint.setStrokeJoin(Paint.Join.ROUND);
globalvariable.paint.setStrokeCap(Paint.Cap.ROUND);
globalvariable.paint.setStrokeWidth(5);
counter = new MyCount(700,1000);
myLongPress = new MyLongPressCount(3000,1000);
_currentStroke = new Stroke();
_strokes = new ArrayList<Stroke>();
_recognizer = null;
_symbols = new ArrayList<Symbol>();
// Initialize lipitk
Context contextlipi = getContext();
File externalFileDir = contextlipi.getExternalFilesDir(null);
String path = externalFileDir.getPath();
Log.d("JNI", "Path: " + path);
_lipitkInterface = new LipiTKJNIInterface(path, "SHAPEREC_ALPHANUM");
_lipitkInterface.initialize();
_page = new Page(_lipitkInterface);
_recognizer=_lipitkInterface;
}
public boolean onTouch(View view, MotionEvent event) {
Values vs=new Values();
final int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN: {
min=480;
max=0;
maxX=0;
minX=800;
counter.cancel();
myLongPress.start();
globalvariable.IsUserWriting=true;
vs.x = (int) event.getX();
vs.y = (int) event.getY();
float X= (float) vs.x;
float Y= (float) vs.y;
PointF p = new PointF(X, Y);
_lastSpot=p;
_currentStroke.addPoint(p);
if(vs.y>max)
max=vs.y;
if(vs.y<min)
min=vs.y;
if(vs.x>maxX)
maxX=vs.x;
if(vs.x<minX)
minX=vs.x;
XCood=vs.x;
globalvariable.strokeXY += "{" + vs.x + "," + vs.y + "}|";
vals.add(vs);
invalidate();
System.out.println("action down stroke values===");
break;
}
case MotionEvent.ACTION_MOVE: {
counter.cancel();
vs.x = (int) event.getX();
vs.y = (int) event.getY();
float X= (float) vs.x;
float Y= (float) vs.y;
PointF p = new PointF(X, Y);
_lastSpot=p;
_currentStroke.addPoint(p);
//myLongPress.cancel();
globalvariable.VSG=vs.x;
globalvariable.LongPressFlag=true;
globalvariable.strokeXY += "{" + vs.x + "," + vs.y + "}|";
vals.add(vs);
if(vs.y>max)
max=vs.y;
if(vs.y<min)
min=vs.y;
if(vs.x>maxX)
maxX=vs.x;
if(vs.x<minX)
minX=vs.x;
XCood=vs.x;
System.out.println("action move stroke values===");
invalidate();
break;
}
case MotionEvent.ACTION_UP:{
vs.x = (int) event.getX();
vs.y = (int) event.getY();
float X= (float) vs.x;
float Y= (float) vs.y;
PointF p = new PointF(X, Y);
_lastSpot=p;
_currentStroke.addPoint(p);
_currentStrokeStore = new ArrayList<PointF>();
_currentStrokeStore.add(p);
System.out.println("Max==="+max);
System.out.println("Min==="+min);
globalvariable.strokeXY += "N";
/* this condition should be checked only once for the first stroke after
a time out */
if(globalvariable.isFirststroke)
{
if((max-min) < 30 &&(max!=min))
{
globalvariable.IsUserWriting = false;
}
}
if(globalvariable.isFirststroke && globalvariable.IsUserWriting == false)
{
globalvariable.isFirststroke = true;
}
else
{
globalvariable.isFirststroke = false;
}
if(globalvariable.IsUserWriting)
{
counter.start();
}
else
{
if(XCood < 30)
{
//canObj.backspace();
}
else if(XCood > (canObj.width - 30))
{
canObj.SpeakOutChoices();
}
}
myLongPress.cancel();
System.out.println("action up stroke values===");
break;
}
}
return true;
}
public void addStroke(Stroke stroke) {
_strokes.add(stroke);
_recognitionStrokes = new Stroke[_strokes.size()];
for (int s = 0; s < _strokes.size(); s++)
_recognitionStrokes = _strokes.get(s);
LipitkResult[] results = _recognizer.recognize(_recognitionStrokes);
for (LipitkResult result : results) {
Log.e("jni", "ShapeID = " + result.Id + " Confidence = " + result.Confidence);
}
String configFileDirectory = _recognizer.getLipiDirectory() + "/projects/alphanumeric/config/";
character=new String[results.length];
for(int i=0;i<character.length;i++){
character = _recognizer.getSymbolName(results.Id, configFileDirectory);
}
StrokeResultCount=results.length;
_recognitionStrokes = null;
}
public void clearCanvas(){
System.out.println("====inside clearcanvas====");
canvasCpy.drawColor(Color.BLUE);
System.out.println("====over clearcanvas====");
}
public static Canvas canvasCpy = null;
int canvasWidth = 0;
int canvasHeight = 0;
private Bitmap bitmap;
@override
protected void onDraw(Canvas canvas) {
canvasHeight=canvas.getHeight();
canvasWidth=canvas.getWidth();
for (Values values : vals) {
canvas.save();
canvas.drawPoint(values.x, values.y, globalvariable.paint);
canvas.restore();
mLastTouchX=values.x;
mLastTouchY=values.y;
}
File root = android.os.Environment.getExternalStorageDirectory();
File file = new File(root, "Freepad/points.txt");
if(!(file.isDirectory()))
{
return;
}
else
{
try {
out = new BufferedWriter(new FileWriter(file));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
out.write(globalvariable.strokeXY);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
globalvariable.canvasvar=canvas;
System.out.println("stroke values:-------"+globalvariable.strokeXY);
System.out.println("stroke values:-------"+globalvariable.strokeXY.length());
}
}
public class MyCount extends CountDownTimer{
public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@override
public void onFinish() {
System.out.println("Timer Flag :: " + globalvariable.TimerFlag);
if(globalvariable.LongPressFlag){
canObj.CallingMethod();
globalvariable.IsUserWriting=false;
globalvariable.isFirststroke = true;
}
else{
}
}
@override
public void onTick(long millisUntilFinished) {
System.out.println("Tick tick Flag :: " + globalvariable.TimerFlag);
}
}
public class MyLongPressCount extends CountDownTimer{
public MyLongPressCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@override
public void onFinish() {
globalvariable.LongPressFlag=false;
System.out.println("Long press timer expiry: Timer Flag :: " + globalvariable.TimerFlag);
canObj.ClearCanvas();
}
@override
public void onTick(long millisUntilFinished) {
System.out.println("Tick tick Flag :: " + globalvariable.TimerFlag);
}
}
}
class Values {
int x, y;
@override
public String toString() {
return x + ", " + y;
}
}

problem using facebook SDK

Hi i have problem capturing the information using the facebook SDK.
The console dont show any error but capture nothing.
In this code below i want to capture the name provided by the facebook SDK
Code:
package com.eduardoh89saluguia;
import java.util.List;
import com.facebook.Request;
import com.facebook.Response;
import com.facebook.Session;
import com.facebook.Session.OpenRequest;
import com.facebook.Session.StatusCallback;
import com.facebook.SessionDefaultAudience;
import com.facebook.SessionLoginBehavior;
import com.facebook.SessionState;
import com.facebook.model.GraphUser;
import android.support.v7.app.ActionBarActivity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
@SuppressWarnings("unused")
public class Registro extends Activity {
String get_id, get_name, get_gender, get_email, get_birthday, get_locale, get_location;
private Session.StatusCallback fbStatusCallback = new Session.StatusCallback() {
public void call(Session session, SessionState state, Exception exception) {
if (state.isOpened()) {
Request.newMeRequest(session, new Request.GraphUserCallback() {
public void onCompleted(GraphUser user, Response response) {
if (response != null) {
String LOG_TAG = null;
// do something with <response> now
try{
// get_id = user.getId();
get_name = user.getName();
//get_gender = (String) user.getProperty("gender");
//get_email = (String) user.getProperty("email");
//get_birthday = user.getBirthday();
//get_locale = (String) user.getProperty("locale");
//get_location = user.getLocation().toString();
Log.d(LOG_TAG, user.getId() + "; " +
user.getName() + "; " //+
//(String) user.getProperty("gender") + "; " +
//(String) user.getProperty("email") + "; " +
//user.getBirthday()+ "; " +
//String) user.getProperty("locale") + "; " +
//user.getLocation()
);
TextView temp;
temp =(TextView)findViewById(R.id.edit1);
temp.setText("your name is "+get_name);
} catch(Exception e) {
e.printStackTrace();
Log.d(LOG_TAG, "Exception e");
}
}
}
}).executeAsync();
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registro);
findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(getApplicationContext(), Ejecucion.class);
startActivity(i);
}
});
}
private Session openActiveSession(Activity activity, boolean allowLoginUI,
StatusCallback callback, List<String> permissions, Bundle savedInstanceState) {
OpenRequest openRequest = new OpenRequest(activity).
setPermissions(permissions).setLoginBehavior(SessionLoginBehavior.
SSO_WITH_FALLBACK).setCallback(callback).
setDefaultAudience(SessionDefaultAudience.FRIENDS);
String LOG_TAG = null;
Session session = Session.getActiveSession();
Log.d(LOG_TAG, "" + session);
if (session == null) {
Log.d(LOG_TAG, "" + savedInstanceState);
if (savedInstanceState != null) {
session = Session.restoreSession(this, null, fbStatusCallback, savedInstanceState);
}
if (session == null) {
session = new Session(this);
}
Session.setActiveSession(session);
if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED) || allowLoginUI) {
session.openForRead(openRequest);
return session;
}
}
return null;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.registro, menu);
return true;
}
@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();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}

Categories

Resources