小编B77*_*770的帖子

Android:显示/隐藏状态栏/电源栏

我正在尝试创建一个按钮,我可以隐藏或显示平板电脑上的状态栏.

我已经加入了onCreate

getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
Run Code Online (Sandbox Code Playgroud)

并在按钮显示:

WindowManager.LayoutParams attrs = getWindow().getAttributes();
attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
getWindow().setAttributes(attrs);
Run Code Online (Sandbox Code Playgroud)

隐藏:

WindowManager.LayoutParams attrs = getWindow().getAttributes();
attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
getWindow().setAttributes(attrs);
Run Code Online (Sandbox Code Playgroud)

任何提示/ tipps?

//编辑

我在这里查看了这个提示:http://android.serverbox.ch/? p = 306 并改变了我的代码:

private void hideStatusBar() throws IOException, InterruptedException {
    Process proc = Runtime.getRuntime().exec(new String[]{"su","-c","service call activity 79 s16 com.android.systemui"});
    proc.waitFor();
}

private void showStatusBar() throws IOException, InterruptedException {
    Process proc = Runtime.getRuntime().exec(new String[]{"am","startservice","-n","com.android.systemui/.SystemUIService"});
    proc.waitFor();
}
Run Code Online (Sandbox Code Playgroud)

因此,如果我点击我的按钮,方法被调用我可以看到发生了什么,因为应用程序正在等待几秒钟.我也调查了LockCat,发现事情正在发生.

显示:http://pastebin.com/CidTRSTi 隐藏:http://pastebin.com/iPS6Kgbp

android statusbar show-hide

39
推荐指数
3
解决办法
9万
查看次数

Android中的Proguard和反射

我刚刚使用了proguard,但我试图通过反射实例化的类不起作用.

我有一个界面

Algorithm
Run Code Online (Sandbox Code Playgroud)

我通过这样的课程

AlgorithmFactory.SomeClassThatExtendsAlgorithmImpl.class
Run Code Online (Sandbox Code Playgroud)

该类实例化如下

public ArrayList<Algorithm> getAlgorithms(Context cnx) {
ArrayList<Algorithm> list = new ArrayList<Algorithm>();

for(Class<? extends Algorithm> alg: algorithms) {

    try {
        Constructor<? extends Algorithm> c = alg.getConstructor(Context.class);
        list.add(c.newInstance(cnx));
    } catch (IllegalArgumentException e) {
        Log.e(TAG, "IllegalArgumentException", e);
        throw new IllegalStateException("There was a problem creating the Algorithm class");
    } catch (InvocationTargetException e) {
        Log.e(TAG, "InvocationTargetException", e);
        throw new IllegalStateException("There was a problem creating the Algorithm class");
    } catch (InstantiationException e) {
        Log.e(TAG, "InstantiationException", e);
        throw new IllegalStateException("There was a …
Run Code Online (Sandbox Code Playgroud)

java reflection obfuscation android proguard

34
推荐指数
2
解决办法
2万
查看次数

Android - 通过耳机播放音频

我目前有代码使用AudioRecord类从设备mic读取录音,然后使用AudioTrack类播放.

我的问题是,当我播放它时,它通过扬声器电话播放.

我希望它通过设备上的耳机播出.

这是我的代码:

public class LoopProg extends Activity {

 boolean isRecording; //currently not used
 AudioManager am;
 int count = 0;

 /** Called when the activity is first created. */
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
        am.setMicrophoneMute(true);
        while(count <= 1000000){
        Record record = new Record();  
        record.run();
        count ++;
        Log.d("COUNT", "Count is : " + count);
        }
    } 

   public class Record extends Thread{
      static final int bufferSize = 200000;
      final short[] buffer = new short[bufferSize]; …
Run Code Online (Sandbox Code Playgroud)

audio android routes

33
推荐指数
2
解决办法
5万
查看次数

使用我自己的Android应用程序/ apk作为启动器/主屏幕更换

我已经创建了自己的应用程序,我希望这个应用程序成为我的启动器.这是一个简单的应用程序,但它的工作原理.

是否可以用我的应用程序替换默认启动器,以便我的应用程序在启动后始终默认启动?

java android launcher homescreen

14
推荐指数
1
解决办法
2万
查看次数

当使用proguard for android应用程序时,反射方法不起作用

当我使用proguard用于在android中使用反射使用telephonyservice apis的应用程序时,我正面临一个问题.

我已经定义了一个包com.android.internal.telephony,我已经复制了ITelephony.aidl文件.

这是我使用反射的电话方法的代码片段.

Class<?> c = Class.forName(tm.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
com.android.internal.telephony.ITelephony telephonyService = 
     (com.android.internal.telephony.ITelephony) m.invoke(tm);

    if(buttonInAction == acceptButton){
       Log.v(TAG, "Answering the call");
       telephonyService.answerRingingCall();
       finish();
    }
    else{
       Log.v(TAG, "Rejecting the call");
       telephonyService.endCall();
       finish();
    }
Run Code Online (Sandbox Code Playgroud)

现在没有proguard我可以使用这个api,但是当我使用proguard进行compliling时,它会给出classcastexception.我知道我需要在proguard.cfg文件中添加一些东西,我也尝试了几个东西,比如-dontshrink -dontoptimize,但它仍然没有用.

如果我遗漏了需要在该文件中添加的内容或此问题的任何其他解决方案,请告诉我.谢谢Nawab

reflection android telephony proguard

11
推荐指数
1
解决办法
5959
查看次数

Android(附件模式)和Windows PC(主机)之间的USB通信

我尝试在我的笔记本(win7)和我的Android手机(Android 4.2)之间建立USB连接.笔记本应该作为主机为Android手机供电.目标是笔记本和手机可以发送和接收xml字符串

我试着按照说明附件模式的android页面(http://developer.android.com/guide/topics/connectivity/usb/accessory.html).

  • 1:我必须像在此处一样定义附件过滤器:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <usb-accessory model="DemoKit" manufacturer="Google" version="1.0"/>
    </resources>
    
    Run Code Online (Sandbox Code Playgroud)

    因为我不想要识别特殊硬件.我想要识别所有类型的Windows计算机(例如我将手机插入另一台PC).

  • 2:我现在在窗户方面什么也没做.我只是按照android页面,插入USB电缆并观看日志.应用程序startet请求权限,但附件为null.有什么提示为什么它是null?码:

    public class MainActivity extends Activity {
    private static final String ACTION_USB_PERMISSION = "com.android.example.USB_PERMISSION";
    private static final String TAG = "USB_PERMISSION";
    UsbAccessory accessory;
    
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
    UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
    
    PendingIntent mPermissionIntent = PendingIntent.getBroadcast(this, 0,
            new Intent(ACTION_USB_PERMISSION), 0);
    IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
    registerReceiver(mUsbReceiver, filter);
    accessory = (UsbAccessory) getIntent().getParcelableExtra(
            UsbManager.EXTRA_ACCESSORY);
    manager.requestPermission(accessory, mPermissionIntent);
     }
    
    private final BroadcastReceiver mUsbReceiver = new …
    Run Code Online (Sandbox Code Playgroud)

java windows usb android communication

10
推荐指数
2
解决办法
1万
查看次数

PCM Wave文件 - 立体声到单声道

我有一个立体声音频文件.将它转换为单声道只是跳过每隔一个字节(在标题之后)的情况?它采用16位有符号PCM格式编码.我javax.sound.sampled有空.

这是我试过的代码不起作用的代码:

WaveFileWriter wfw = new WaveFileWriter();
AudioFormat format = new AudioFormat(Encoding.PCM_SIGNED, 44100, 16, 2, 2, 44100, false);
AudioFormat monoFormat = new AudioFormat(Encoding.PCM_SIGNED, 44100, 16, 1, 2, 44100, false);

byte[] audioData = dataout.toByteArray();
int length = audioData.length;
ByteArrayInputStream bais = new ByteArrayInputStream(audioData);

AudioInputStream stereoStream = new AudioInputStream(bais,format,length);
AudioInputStream monoStream = new AudioInputStream(stereoStream,format,length/2);

wfw.write(monoStream, Type.WAVE, new File(Environment.
                 getExternalStorageDirectory().getAbsolutePath()+"/stegDroid/un-ogged.wav"));
Run Code Online (Sandbox Code Playgroud)

.ogg使用Jorbis 读取文件后将此代码转换为PCM数据.唯一的问题是结果是立体声,我需要它是单声道,所以如果有另一种解决方案,我很高兴听到它!

java audio pcm vorbis

9
推荐指数
1
解决办法
1万
查看次数

使用java从jar作为资源播放.wav文件

我想使用java代码播放.wav文件,该代码位于jar文件中作为资源.我的代码看起来像这样 -

try {
     URL defaultSound = getClass().getResource("/images/ads/WindowsNavigationStart.wav");
     // getClass().getSy.getResource("/images/ads/WindowsNavigationStart.wav");
     File soundFile = new File(defaultSound.toURI());
     AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(soundFile);
     Clip clip = AudioSystem.getClip();
     clip.open(audioInputStream);
     clip.start( );
} catch (Exception ex) {
     ex.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

WindowsNavigationStart.wav文件存在于我的一个jar文件中.但得到以下例外 -

java.lang.IllegalArgumentException: URI is not hierarchical
at java.io.File.<init>(File.java:363)
at au.com.webscan.wwwizard.app.admin.customfile.UpOneLevelFolder.btnUpFolderActionPerformed(Unknown Source)
at au.com.webscan.wwwizard.app.admin.customfile.UpOneLevelFolder.access$000(Unknown Source)
at au.com.webscan.wwwizard.app.admin.customfile.UpOneLevelFolder$1.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6288)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6053)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4651)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at …
Run Code Online (Sandbox Code Playgroud)

java audio resources jar

9
推荐指数
2
解决办法
2万
查看次数

如何在android中以编程方式获取gmail邮件

我希望将所有不同邮件服务的收件箱邮件(如gmail,hotmail,rediffmail等)发送到我的应用程序中.最初我尝试使用Imap获取gmail邮件.但我得到一个套接字例外.这是我试过的代码.请帮我.

public void getMails(View V){
Properties props = System.getProperties();
props.setProperty("mail.store.protocol", "imaps");
props.setProperty("mail.imap.port", "993");

props.setProperty("mail.imap.socketFactory.class", .ssl.SSLSocketFactory");
props.setProperty("mail.imap.socketFactory.fallback", "false");
    try {
      Session session = Session.getDefaultInstance(props, null);
      Store store = session.getStore("imaps");
      store.connect("imap.gmail.com", "aravelliramesh35@gmail.com", "pswd");
    }
  //}catch (NoSuchProviderException e) {
  //   e.printStackTrace();
  //   System.exit(1);
  //} 
    catch (MessagingException e) {
        e.printStackTrace();
        System.exit(2);
    }
}
Run Code Online (Sandbox Code Playgroud)

android

9
推荐指数
1
解决办法
1万
查看次数

如何使用RTP发送和接收语音流

我是使用RTP进行SIP呼叫的新手,现在我正在尝试使用RTP发送和接收语音流以进行SIP呼叫.我完成了连接两个仿真器并能够使用jain sip发送INVITE和INVITE-ACK.

得到Ack之后我想开始RTP进行媒体流,我使用RtpPacket函数发送和接收

RtpFunction用来发送带有所有RTP头的媒体,如下所示:

byte Version;
boolean Padding;
boolean Extension;
byte CC;
boolean Marker;
byte PayloadType;
short SequenceNumber;
int TimeStamp;
Run Code Online (Sandbox Code Playgroud)

请给出一些我能找到答案的想法和实际链接.

android voip sip rtp jain-sip

8
推荐指数
1
解决办法
7543
查看次数